Takeaways Key
- Gunakan NGINX dan PHP-FPM untuk menjalankan pelbagai versi PHP pada pelayan tunggal, seperti yang ditunjukkan dengan Php 5.5.x dan 5.6.x pada Fedora OS.
- Pastikan semua alat pembangunan dan perpustakaan yang diperlukan dipasang, seperti GCC, Make, dan Libtool, untuk berjaya membina PHP dari sumber.
- klon kod sumber PHP dari GitHub untuk mengakses pelbagai versi PHP dan mengkonfigurasi mereka menggunakan skrip `./Konfigurasi dengan pilihan khusus seperti` -enable-FPM` untuk sokongan PHP-FPM.
- Pasang dan konfigurasikan versi PHP yang berbeza dalam direktori berasingan (`/OPT/PHP-5.5`,`/OPT/PHP-5.6`) untuk mengasingkannya dan mengelakkan konflik.
- Ubah suai konfigurasi nginx untuk mengarahkan trafik ke versi PHP yang berbeza berdasarkan nama pelayan, yang membolehkan hosting serentak pelbagai aplikasi yang memerlukan persekitaran PHP yang berbeza.
- Nota awal
Tutorial ini akan meliputi pemasangan Php 5.5.x dengan Phalcon 1.3.x dan Php 5.6.x dengan Phalcon 2.0.0. Kami juga akan membina beberapa sambungan PHP tambahan seperti APC, Memcache, Memcached, dan Ioncube.
Memasang nginx
nginx adalah pakej yang ada di Fedora OS yang boleh kita pasang seperti berikut:
Kemudian, kami membuat pautan permulaan sistem untuk nginx dan mulakannya
sudo yum install nginx
Membina php
sudo chkconfig nginx on sudo service nginx start
Sebelum memulakan dengan PHP, kita perlu memasang prasyarat untuk membina Php5:
GCC atau beberapa suite compiler lain.
- libc-dev, menyediakan perpustakaan standard C, termasuk tajuk.
- membuat, yang merupakan alat binaan-pengurusan PHP menggunakan.
- autoconf (2.59 atau lebih tinggi) untuk menghasilkan skrip konfigurasi.
- automake (1.4 atau lebih tinggi), menghasilkan fail makefile.in.
- Libtool, membantu kami menguruskan perpustakaan bersama.
- bison (2.4 atau lebih tinggi), untuk menjana parser PHP.
- (pilihan) RE2C, yang digunakan untuk menjana php lexer. Oleh kerana repositori git sudah mengandungi lexer yang dihasilkan, anda hanya perlu RE2C jika anda ingin membuat perubahan kepadanya.
- di CentOS/Fedora Anda boleh memasang semua ini dengan arahan berikut:
maka kita perlu mendapatkan kod sumbernya. Terdapat dua cara untuk melakukan ini: anda boleh memuat turun arkib dari halaman muat turun PHP atau mengklonkan repositori git dari GitHub.
sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
Kami mengesyorkan menyemak kod sumber dari Git, kerana ia memberikan anda cara mudah untuk memastikan pemasangan anda terkini dan untuk mencuba kod anda dengan versi yang berbeza. Pemeriksaan Git juga diperlukan jika anda ingin mengemukakan patch atau permintaan untuk php.
untuk mengklon repositori, jalankan arahan berikut di terminal anda:
sudo yum install nginx
Secara lalai anda akan berada di cawangan induk, jadi jika anda ingin berpindah ke versi pembangunan, anda perlu menyemak cawangan yang stabil. Contohnya.
sudo chkconfig nginx on sudo service nginx start
Sebelum pergi ke langkah membina individu, kita mesti melaksanakan beberapa arahan untuk membina php "lalai". Ini hanya perlu dibina dari git.
sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
./ BuildConf menjana skrip konfigurasi. Ini mungkin mengambil masa beberapa minit.
pada pendapat saya, menyimpan keseluruhan pelayan web dalam satu direktori adalah yang terbaik, jadi saya gunakan /memilih di sini. Buka terminal dan taipkan arahan berikut.
sudo mkdir /opt/source && cd /opt/source git clone git@github.com:php/php-src.git && cd php-src
Setelah skrip ./Configure dihasilkan melalui langkah di atas, anda boleh menggunakannya untuk menyesuaikan binaan PHP anda. Anda boleh menyenaraikan semua pilihan yang disokong menggunakan -help:
<span> PHP 5.3: git checkout PHP-5.3 </span><span> PHP 5.4: git checkout PHP-5.4 </span><span> PHP 5.6: git checkout PHP-5.6 </span><span> PHP HEAD: git checkout master </span>
Perintah di atas akan menyenaraikan pelbagai pilihan generik, yang disokong oleh semua skrip konfigurasi berasaskan Autoconf. Salah satu daripada mereka telah disebutkan -prefix = dir, yang mengubah direktori pemasangan yang digunakan dengan membuat pemasangan. Satu lagi pilihan berguna ialah -c, yang akan cache hasil dari pelbagai ujian dalam fail config.cache dan mempercepatkan panggilan berikutnya ./configure. Menggunakan pilihan ini hanya masuk akal sebaik sahaja anda sudah membina kerja dan ingin dengan cepat berubah antara konfigurasi yang berbeza.
Berikut adalah beberapa tetapan yang berguna:
sudo ./buildconf
Selepas menamatkan persiapan, kami memasang versi PHP 5.6. Jalankan yang berikut:
sudo mkdir -p /opt/php-5.6 sudo mkdir -p /opt/php-5.5suis terakhir (-enable-fpm) menjadikan versi PHP ini berfungsi dengan PHP-FPM. Jika anda ingin menggunakan versi PHP-FPM ini dengan Apache, sila gunakan-With-FPM-USER = Apache dan-With-FPM-group = Apache. Sebaliknya, jika anda ingin menggunakan versi php-fpm ini dengan nginx, sila gunakan-with-fpm-user = nginx dan --with-fpm-group = nginx.
Mesej yang berjaya harus dicetak di terminal seperti:
3
./configure --help
Hasil utama operasi ini akan menjadi binari PHP untuk SAPI yang didayakan (secara lalai SAPI/CLI/PHP dan SAPI/CGI/PHP-CGI), serta sambungan bersama dalam modul/direktori.
Sekarang anda boleh menjalankan "Buat Pasang" untuk memasang PHP ke /usr /tempatan (lalai) atau direktori lain dengan menggunakan konfigurasi --Prefix. Dalam kes ini ia /opt/php-5.6[...] Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print `checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for `--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or `..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] [...]
Sila ambil perhatian bahawa membuat pemasangan tidak akan membuat fail INI.
./configure \ --prefix=/opt/php-5.6 \ --with-pdo-pgsql \ --with-zlib-dir \ --with-freetype-dir \ --enable-mbstring \ --with-libxml-dir=/usr \ --enable-soap \ --enable-calendar \ --with-curl \ --with-mcrypt \ --with-zlib \ --with-gd \ --with-pgsql \ --disable-rpath \ --enable-inline-optimization \ --with-bz2 \ --with-zlib \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --with-mhash \ --enable-zip \ --with-pcre-regex \ --with-mysql \ --with-pdo-mysql \ --with-mysqli \ --with-png-dir=/usr \ --enable-gd-native-ttf \ --with-openssl \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --with-libdir=lib64 \ --enable-ftp \ --with-imap \ --with-imap-ssl \ --with-kerberos \ --with-gettext \ --with-gd \ --with-jpeg-dir=/usr/lib/ --enable-fpmsalin php.ini dan php-fpm.conf ke direktori yang betul:
[...] creating libtool appending configuration tag "CXX" to libtool Generating files configure: creating ./config.status creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP. config.status: creating php5.spec config.status: creating main/build-defs.h config.status: creating scripts/phpize config.status: creating scripts/man1/phpize.1 config.status: creating scripts/php-config config.status: creating scripts/man1/php-config.1 config.status: creating sapi/cli/php.1 config.status: creating sapi/fpm/php-fpm.conf config.status: creating sapi/fpm/init.d.php-fpm config.status: creating sapi/fpm/php-fpm.service config.status: creating sapi/fpm/php-fpm.8 config.status: creating sapi/fpm/status.html config.status: creating sapi/cgi/php-cgi.1 config.status: creating ext/phar/phar.1 config.status: creating ext/phar/phar.phar.1 config.status: creating main/php_config.h config.status: executing default commandskami mengesahkan dan menyemak versi PHP sekali lagi.
sudo yum install nginx
buka /opt/php-5.6/etc/php-fpm.conf dan laraskan tetapan dalam barisan pendengaran. Anda mesti menukar ke pelabuhan yang tidak digunakan (mis. 9001; port 9000 mungkin digunakan oleh fedora)
sudo chkconfig nginx on sudo service nginx start
sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
persediaan skrip init
Anda mungkin mahu membuat skrip init untuk PHP-FPM baru anda. Nasib baik, Php 5.3 sudah menyediakannya untuk anda, hanya salin skrip init ke direktori anda dan menukar keizinan:
sudo mkdir /opt/source && cd /opt/source git clone git@github.com:php/php-src.git && cd php-src
skrip init anda sudah siap. Sekarang, anda dapat memulakan, menghentikan dan memuatkan semula PHP-FPM:
<span> PHP 5.3: git checkout PHP-5.3 </span><span> PHP 5.4: git checkout PHP-5.4 </span><span> PHP 5.6: git checkout PHP-5.6 </span><span> PHP HEAD: git checkout master </span>
Membina PHP kedua (5.5.x)
Kami membuka terminal dan ketik arahan berikut.
sudo ./buildconf
Membina PHP Phalcon Extensions
Untuk memasang pelbagai versi Phalcon termasuk Phalcon 2.0, kita perlu memasang Zephir
sudo mkdir -p /opt/php-5.6 sudo mkdir -p /opt/php-5.5
Terdapat banyak cara untuk memasang sambungan PHP. Kami akan menggunakan phpize membinanya.
PHPIZE memainkan peranan yang sama seperti skrip. Antara fail ini ialah acinclude.m4 (PHP's M4 macro), phpize.m4 (yang akan dinamakan semula untuk mengkonfigurasi.in dalam lanjutan anda dan mengandungi arahan pembina utama) dan run-tests.php.
Kemudian, phpize akan memanggil autoconf untuk menghasilkan fail ./configure, yang boleh digunakan untuk menyesuaikan binaan lanjutan. Seperti pemasangan memcached anda mesti menambah-yang boleh dimulakan.
ingat! Anda mesti menentukan pilihan-With-PHP-CONFIG semasa membina sambungan (melainkan jika anda hanya mempunyai satu pemasangan Global PHP). Jika tidak ./Configure tidak akan dapat menentukan versi PHP dan bendera dengan betul. Selain itu, skrip php-config juga memastikan bahawa perintah "membuat pemasangan" akan memindahkan fail *yang dijana ke direktori lanjutan yang betul.
Membina phalcon phalcon pertama (2.0)
./configure --help
sila periksa sama ada atau tidak ia berjaya
[...] Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print `checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for `--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or `..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] [...]
selepas pelanjutan dipasang. Anda masih perlu mengaktifkannya dengan memasukkannya dalam fail php.ini.
./configure \ --prefix=/opt/php-5.6 \ --with-pdo-pgsql \ --with-zlib-dir \ --with-freetype-dir \ --enable-mbstring \ --with-libxml-dir=/usr \ --enable-soap \ --enable-calendar \ --with-curl \ --with-mcrypt \ --with-zlib \ --with-gd \ --with-pgsql \ --disable-rpath \ --enable-inline-optimization \ --with-bz2 \ --with-zlib \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --with-mhash \ --enable-zip \ --with-pcre-regex \ --with-mysql \ --with-pdo-mysql \ --with-mysqli \ --with-png-dir=/usr \ --enable-gd-native-ttf \ --with-openssl \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --with-libdir=lib64 \ --enable-ftp \ --with-imap \ --with-imap-ssl \ --with-kerberos \ --with-gettext \ --with-gd \ --with-jpeg-dir=/usr/lib/ --enable-fpm
Membina phalcon phalcon kedua (1.3.x)
[...] creating libtool appending configuration tag "CXX" to libtool Generating files configure: creating ./config.status creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP. config.status: creating php5.spec config.status: creating main/build-defs.h config.status: creating scripts/phpize config.status: creating scripts/man1/phpize.1 config.status: creating scripts/php-config config.status: creating scripts/man1/php-config.1 config.status: creating sapi/cli/php.1 config.status: creating sapi/fpm/php-fpm.conf config.status: creating sapi/fpm/init.d.php-fpm config.status: creating sapi/fpm/php-fpm.service config.status: creating sapi/fpm/php-fpm.8 config.status: creating sapi/fpm/status.html config.status: creating sapi/cgi/php-cgi.1 config.status: creating ext/phar/phar.1 config.status: creating ext/phar/phar.phar.1 config.status: creating main/php_config.h config.status: executing default commands
kami periksa lagi untuk memastikan pemasangan berjaya
make
Mengkonfigurasi nginx
sudo make install
Konfigurasi berikut akan membuat dua pelayan: Phalcon-Prd.Localhost berjalan pada Php 5.5.x dan Phalcon-dev.Localhost berfungsi dengan Php 5.6.x. Ini adalah contoh, anda boleh menyesuaikannya dengan apa sahaja yang anda mahukan, lihat dokumentasi nginx
/opt/php-5.6/bin/php --ini Configuration File (php.ini) Path: /opt/php-5.6/lib Loaded Configuration File: (none) Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
Sediakan fail host tempatan
Jika anda menggunakan sistem Linux, anda boleh mengedit fail hos:
sudo cp <span>/opt/source/php-src/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.conf </span>sudo cp <span>/opt/source/php-src/php.ini-production /opt/php-5.6/lib/php.ini</span>
fail tuan rumah baru akan kelihatan seperti.
/opt/php-5.6/bin/php --ini Configuration File (php.ini) Path: /opt/php-5.6/lib Loaded Configuration File: /opt/php-5.6/lib/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none) ### Checking php /opt/php-5.6/bin/php --version PHP 5.6.2-dev (cli) (built: Oct 2 2014 17:20:23) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
Ini memintas semua permintaan untuk phalcon-dev.localhost dan phalcon-prd.localhost kemudian menghantarnya ke pelayan anda.
menguji ia
Untuk ujian, kami membuat fail baru yang dipanggil Test.php dan memasukkannya ke dalam folder yang sepadan dengan konfigurasi di atas nginx. Dalam setiap fail, kami menambah arahan berikut.
sudo yum install nginx
Sekarang, menjalankan fail test.php di setiap pelayan, kita melihat phalcon 1.3.x phpinfo () di http: //phancon-prd.localhost/test.php manakala di http: //phancon-dev.localhost /test.php ada phpinfo () phalcon 2.0.x.
Dalam tutorial ini, kami telah belajar bagaimana kami dapat dengan mudah mempunyai pelbagai versi PHP secara aktif di pelayan kami, masing -masing dengan set tersendiri yang berbeza jika perlu. Ini boleh menjadi berguna jika anda melakukan hosting bersama, atau jika anda perlu menyokong aplikasi warisan kuno sambil dapat membangun dan menggunakan versi canggih, contohnya.
Tinggalkan maklum balas anda dalam komen di bawah dan, seperti biasa, sila kongsi artikel ini jika anda menyukainya!
soalan yang sering ditanya mengenai menjalankan pelbagai versi PHP pada satu pelayan
bagaimana saya boleh menjalankan pelbagai versi PHP pada satu pelayan menggunakan Apache dan PHP-FPM di Ubuntu 18.04? Pasang versi PHP yang diperlukan dan Apache. Kemudian, anda perlu mengkonfigurasi Apache untuk menggunakan versi PHP-FPM untuk setiap tapak. Anda boleh melakukan ini dengan menyunting fail konfigurasi Apache untuk setiap tapak dan menetapkan Arahan ProxyPAssMatch untuk menggunakan kolam PHP-FPM yang betul. Selepas itu, anda perlu membuat kolam PHP-FPM untuk setiap versi PHP. Akhirnya, mulakan semula Apache dan PHP-FPM untuk menggunakan perubahan. dan perintah a2dismod. Perintah A2Enmod membolehkan modul, dan perintah A2Dismod melumpuhkan modul. Untuk beralih ke versi PHP yang berbeza, anda perlu melumpuhkan versi PHP semasa dan membolehkan versi PHP yang dikehendaki. Selepas itu, anda perlu memulakan semula Apache untuk menggunakan perubahan. Konfigurasikan setiap laman web untuk menggunakan versi PHP yang berbeza. Anda boleh melakukan ini dengan mengedit fail konfigurasi Apache untuk setiap laman web dan menetapkan Arahan ProxyPAssMatch untuk menggunakan kolam PHP-FPM yang betul. Selepas itu, anda perlu membuat kolam PHP-FPM untuk setiap versi PHP. Akhirnya, mulakan semula Apache dan PHP-FPM untuk memohon perubahan.
bagaimana saya boleh memasang pelbagai versi PHP di Fedora 35 menggunakan Apache dan PHP-FPM? Apache. Kemudian, anda perlu mengkonfigurasi Apache untuk menggunakan versi PHP-FPM untuk setiap tapak. Anda boleh melakukan ini dengan menyunting fail konfigurasi Apache untuk setiap tapak dan menetapkan Arahan ProxyPAssMatch untuk menggunakan kolam PHP-FPM yang betul. Selepas itu, anda perlu membuat kolam PHP-FPM untuk setiap versi PHP. Akhirnya, mulakan semula Apache dan PHP-FPM untuk menggunakan perubahan. Versi PHP yang diperlukan. Kemudian, anda boleh menggunakan arahan PHPENV untuk menukar antara versi PHP yang berbeza. Anda juga boleh menggunakan PHPENV Global Command untuk menetapkan versi PHP global, dan perintah tempatan PHPENV untuk menetapkan versi PHP tempatan untuk direktori tertentu. 🎜> Anda boleh menyemak versi PHP semasa pada pelayan anda dengan menjalankan arahan PHP -V di terminal. Perintah ini akan memaparkan versi PHP semasa dan maklumat lain mengenai pemasangan PHP.
Bagaimana saya boleh memasang versi PHP tertentu pada pelayan saya? Dengan menggunakan arahan pemasangan apt-get diikuti dengan nama pakej untuk versi PHP yang dikehendaki. Sebagai contoh, untuk memasang Php 7.2, anda akan menjalankan perintah apt-get memasang Php7.2. Gunakan versi PHP tertentu dengan mengedit fail konfigurasi Apache dan menetapkan arahan ProxyPassMatch untuk menggunakan kolam PHP-FPM yang betul. Selepas itu, anda perlu memulakan semula Apache untuk menggunakan perubahan. Versi PHP khusus dengan membuat fail konfigurasi kolam baru dalam direktori /etc/php/7.2/fpm/pool.d/. Fail konfigurasi harus mengandungi tetapan untuk kolam php-fpm, seperti alamat pendengaran dan port, pengguna dan kumpulan, dan tetapan pengurus proses. Satu pelayan?
Atas ialah kandungan terperinci Cara menjalankan pelbagai versi PHP pada satu pelayan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Untuk melindungi permohonan dari serangan XSS yang berkaitan dengan sesi, langkah-langkah berikut diperlukan: 1. Tetapkan bendera httponly dan selamat untuk melindungi kuki sesi. 2. Kod eksport untuk semua input pengguna. 3. Melaksanakan Dasar Keselamatan Kandungan (CSP) untuk mengehadkan sumber skrip. Melalui dasar-dasar ini, serangan XSS yang berkaitan dengan sesi dapat dilindungi dengan berkesan dan data pengguna dapat dipastikan.

Kaedah untuk mengoptimumkan prestasi sesi PHP termasuk: 1. Mula sesi kelewatan, 2. Gunakan pangkalan data untuk menyimpan sesi, 3. Data sesi kompres, 4. Mengurus kitaran hayat sesi, dan 5. Melaksanakan perkongsian sesi. Strategi ini dapat meningkatkan kecekapan aplikasi dalam persekitaran konkurensi yang tinggi.

Thesession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata, setInseconds.1) it'sconfiguredinphp.iniorviaini_set (). 2) abalanceisneededtoavoidperformanceissuesandunexpectedlogouts.3) php'sgarbageCollectionisprobabilistic, influedbygc_probabi

Dalam PHP, anda boleh menggunakan fungsi session_name () untuk mengkonfigurasi nama sesi. Langkah -langkah tertentu adalah seperti berikut: 1. Gunakan fungsi session_name () untuk menetapkan nama sesi, seperti session_name ("my_session"). 2. Selepas menetapkan nama sesi, hubungi session_start () untuk memulakan sesi. Mengkonfigurasi nama sesi boleh mengelakkan konflik data sesi antara pelbagai aplikasi dan meningkatkan keselamatan, tetapi memberi perhatian kepada keunikan, keselamatan, panjang dan penetapan masa sesi.

ID sesi hendaklah dijadikan semula secara teratur pada log masuk, sebelum operasi sensitif, dan setiap 30 minit. 1. Meningkatkan semula ID Sesi semasa log masuk untuk mengelakkan serangan tetap sesi. 2. Regenerate sebelum operasi sensitif untuk meningkatkan keselamatan. 3. Penjanaan semula secara berkala mengurangkan risiko penggunaan jangka panjang, tetapi pengalaman pengguna perlu ditimbang.

Menetapkan Parameter Cookie Sesi di PHP boleh dicapai melalui fungsi session_set_cookie_params (). 1) Gunakan fungsi ini untuk menetapkan parameter, seperti masa tamat, laluan, nama domain, bendera keselamatan, dan lain -lain; 2) hubungi session_start () untuk membuat parameter berkuatkuasa; 3) menyesuaikan parameter secara dinamik mengikut keperluan, seperti status log masuk pengguna; 4) Perhatikan untuk menetapkan bendera selamat dan httponly untuk meningkatkan keselamatan.

Tujuan utama menggunakan sesi dalam PHP adalah untuk mengekalkan status pengguna antara halaman yang berbeza. 1) Sesi dimulakan melalui fungsi session_start (), mewujudkan ID sesi yang unik dan menyimpannya dalam cookie pengguna. 2) Data sesi disimpan di pelayan, yang membolehkan data diluluskan antara permintaan yang berbeza, seperti status log masuk dan kandungan keranjang belanja.

Bagaimana untuk berkongsi sesi antara subdomain? Dilaksanakan dengan menetapkan kuki sesi untuk nama domain biasa. 1. Tetapkan domain cookie sesi ke .example.com di sebelah pelayan. 2. Pilih kaedah penyimpanan sesi yang sesuai, seperti memori, pangkalan data atau cache yang diedarkan. 3. Lulus ID Sesi melalui kuki, dan pelayan mengambil semula dan mengemas kini data sesi berdasarkan ID.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!