Jadual Kandungan
Pemasangan dan konfigurasi
Rumah pembangunan bahagian belakang PHP8 Penyusunan, pemasangan dan penggunaan PHP8.0 (penjelasan terperinci)

Penyusunan, pemasangan dan penggunaan PHP8.0 (penjelasan terperinci)

Feb 16, 2022 am 11:19 AM

Versi rasmi PHP8.0 telah dikeluarkan untuk masa yang lama Artikel ini akan memperkenalkan pemasangan dan penggunaannya laravel untuk membandingkan PHP7 [Disyorkan: Tutorial video PHP]

Pemasangan dan konfigurasi

Sistem pengendalian yang digunakan kali iniUbuntu 18.04.4 LTS

Pemasangan

1 Sediakan perpustakaan yang diperlukan

apt-get install -y autoconf libxml2-dev libsqlite3-dev \
libcurl4-openssl-dev libssl-dev libonig-dev libtidy-dev zlib1g-dev
Salin selepas log masuk

2 Pergi ke tapak web rasmi untuk memuat turun versi rasmi 8.0 https://www.php.net /releases/8.0/en.php

3 Buka zip dan pasang

tar php-8.0.0.tar.gzcd php-8.0.0
./configure --prefix=/opt/php8 --with-config-file-path=/opt/php8/etc \
--enable-fpm --enable-mysqlnd --enable-opcache --enable-pcntl \
--enable-mbstring --enable-soap --enable-zip --enable-calendar \
--enable-bcmath --enable-exif --enable-ftp --enable-intl --with-mysqli \
--with-pdo-mysql --with-openssl --with-curl --with-gd --with-gettext \
--with-mhash --with-openssl --with-mcrypt --with-tidy --enable-wddx \
--with-xmlrpc --with-zlibmakemake installcp php.ini-production /opt/php/etc/php.inicd /opt/php8/etccp php-fpm.conf.default php-fpm.confcp ./php-fpm.d/www.conf.default ./php-fpm.d/www.conf
Salin selepas log masuk

4. Buat pautan lembut

ln -s /opt/php8/bin/php /usr/bin/php8
Salin selepas log masuk

5

cd /opt/php8/bin/curl -sS https://getcomposer.org/installer | php8ln -s /opt/php8/bin/composer.phar /usr/bin/composer8
composer8 config -g repo.packagist composer https://mirrors.aliyun.com/composer/
Salin selepas log masuk
6. Tambah perkhidmatan sistem php8 .0

vim /lib/systemd/system/php8.0-fpm.service
Salin selepas log masuk
kandungan adalah seperti berikut

[Unit]
Description=The PHP 8.0 FastCGI Process Manager
Documentation=man:php-fpm8.0(8)
After=network.target

[Service]
Type=simple
PIDFile=/var/run/php8.0-fpm.pid
ExecStart=/opt/php8/sbin/php-fpm --nodaemonize --fpm-config /opt/php8/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
Salin selepas log masuk

konfigurasi

fpm-fpm, konfigurasi php.ini

Sama seperti PHP7, beri perhatian kepada kebenaran pengguna

konfigurasi opcache

PHP8 mempunyai konfigurasi jit tambahan, seperti berikut

[opcache]
zend_extension=opcache.so
opcache.enable=1 
opcache.jit_buffer_size=100M
opcache.jit=1255
Salin selepas log masuk

Mula

systemctl start php8.0-fpm
Salin selepas log masuk
laravel

Buat projek laravel [Disyorkan: tutorial video laravel]

cd /opt/web
composer8 create-project --prefer-dist laravel/laravel php8
Salin selepas log masuk
Konfigurasikan fail .env

konfigurasi nginx

Konfigurasi bagi nginx konsisten dengan PHP7

server {
    listen 94;

    access_log  /tmp/test94.log main;

    root /opt/web/php8/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php {
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
        fastcgi_index /index.php;

        include fastcgi_params;

        fastcgi_split_path_info       ^(.+\.php)(/.+)$;
        fastcgi_param PATH_INFO       $fastcgi_path_info;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
Salin selepas log masuk

Tambah antara muka

Kaedah penghalaan laravel7 mempunyai beberapa masalah dalam laravel8. Sila tukar kaedah penulisan

. RouteServiceProvider.php Contohnya, untuk penghalaan API, tukar
kepada $this->namespace. AppHttpControllersApi

public function boot()
    {
        $this->configureRateLimiting();

        $this->routes(function () {
            Route::prefix('api')
                ->middleware('api')
		->namespace('App\Http\Controllers\Api')
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));
        });
    }
Salin selepas log masuk
Yang lain pun sama, tak perlu ubah suai.

Tambahkan antara muka ujian untuk melihat:

Route::get('/test','WxController@test');
Salin selepas log masuk

Antara muka menyemak sekeping data dan mengembalikannyatest

<?phpnamespace App\Http\Controllers\Api;use App\Models\WareHouses;use Illuminate\Foundation\Auth\Access\AuthorizesRequests;use Illuminate\Foundation\Bus\DispatchesJobs;use Illuminate\Foundation\Validation\ValidatesRequests;use Illuminate\Http\Request;use Illuminate\Routing\Controller as BaseController;class WxController extends BaseController{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

    public function test(Request $request)
    {
        return WareHouses::find(1)->toarray();
    }}
Salin selepas log masuk
Ujian perbandingan PHP7

ini saya menggunakan PHP7.3 buat kali pertama, kod antara muka adalah sama seperti PHP8, dan opcache didayakan pada kedua-duanya.

Konfigurasi pelayan ialah 1 teras 2G, gunakan ab untuk menguji sahaja.

ab -n 100 -c 10
Salin selepas log masuk
Keputusan ujian PHP7.3 adalah seperti berikut:

This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.10.10 (be patient).....done


Server Software:        nginx/1.14.0
Server Hostname:        192.168.10.10
Server Port:            94

Document Path:          /api/test
Document Length:        255 bytes

Concurrency Level:      10
Time taken for tests:   0.400 seconds
Complete requests:      10
Failed requests:        0
Total transferred:      5720 bytes
HTML transferred:       2550 bytes
Requests per second:    25.00 [#/sec] (mean)
Time per request:       399.994 [ms] (mean)
Time per request:       39.999 [ms] (mean, across all concurrent requests)
Transfer rate:          13.97 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        8   10   2.1     11      13
Processing:   101  159  42.8    174     228
Waiting:      101  159  42.8    174     228
Total:        114  170  42.0    186     235

Percentage of the requests served within a certain time (ms)
  50%    186
  66%    186
  75%    197
  80%    219
  90%    235
  95%    235
  98%    235
  99%    235
 100%    235 (longest request)
Salin selepas log masuk
Keputusan ujian PHP8.0 adalah seperti berikut:

Atas ialah kandungan terperinci Penyusunan, pemasangan dan penggunaan PHP8.0 (penjelasan terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)