1. Install nginx
One command to complete:
use=fastcgi emerge nginx
New users and groups:
groupadd www
useradd www - g www
nginx After installation, the nginx group and nginx user will be added by default, but I am still used to creating a new www group and www user as http service users. If the http server is changed to apache or lighttpd in the future, the user name and user group can remain unchanged.
2. Install mysql
Mysql must be installed before installing php, because the mysql operation function in php requires the support of the mysql header file and library.
emerge dev-db/mysql
Initialize the database:
The default path of the database is /var/lib/mysql. The installation of this article places it in /work/db/3306/data.
Copy code The code is as follows:
mkdir -p /work/db/3306/data
mysql_install_db --basedir=/usr --datadir=/work/db/ 3306/data --user=mysql
Modify the configuration file:
vim /etc/mysql/my.cnf
Modify datadir to:
datadir = /work/db /3306/data
Start mysql:
/etc/init.d/mysql start
Modify root password:
mysqladmin -uroot password hily
Test Database:
mysql -uroot -p
Display:
gentoo setup # mysql -uroot -p
enter password:
welcome to the mysql monitor. commands end with ; or \ g.
your mysql connection id is 2
server version: 5.0.84-log gentoo linux mysql-5.0.84-r1
type 'help;' or '\h' for help. type '\c' to clear the current input statement.
mysql>
Test successful!
3. Install php
To run php in fastcgi mode, you need to install php-fpm.
Currently, the last php version that requires php-fpm to be installed in patch form is 5.3.0. It will be possible to directly integrate php-fpm in php 5.3.2 version.
Here I will use php 5.3.0 to install.
Because the directory in gentoo has not integrated the portage of php-fpm, so the following is directly installed through source code compilation.
Download php 5.3.0:
wget http://cn.php.net/distributions/php-5.3.0.tar.bz2
Download php-fpm patch:
wget http://php-fpm.org/downloads/php-5.3.0-fpm-0.5.12.diff.gz
Extract php and apply fpm patch:
tar jxf php-5.3.0 .tar.bz2
gzip -cd php-5.3.0-fpm-0.5.12.diff.gz | patch -d php-5.3.0 -p1
Install the libraries required by php (according to its own Required):
emerge libpng
emerge jpeg
emerge freetype
use="png jpeg truetype" emerge gd
or directly:
use="png jpeg truetype" emerge gd
Configure and compile php (according to your own needs):
Copy the code The code is as follows:
cd php-5.3.0
./configure --prefix= /usr/local/php --with-config-file-path=/usr/local/php/etc
--with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --enable -fpm --enable-sockets
--enable-pdo --with-pdo-mysql=/usr --with-gd --with-jpeg-dir --with-png-dir
--with -freetype-dir --with-zlib
make && make install
php configuration file:
Copy code The code is as follows:
cp php.ini-production /usr/local/php/etc/php.ini
php-fpm configuration file:
vim /usr/local/php/etc/php-fpm.conf
Modify listen_address to the socket address (socket is more efficient than ip:port):
Modify user Group and user name:
Copy code The code is as follows:
unix user of processes
unix group of processes
Modify php-fpm running mode to apache-like mode:
Copy code The code is as follows :
startservers, minspareservers and maxspareservers are set according to actual needs. Here I am Virtual machines don’t need to be too big.
php-fpm startup script:
cp /usr/local/php/sbin/php-fpm /etc/init.d/php-fpm
Start php-fpm
/etc/init.d/php-fpm start
Add startup service
Copy code The code is as follows:
rc-update add nginx default
rc-update add mysql default
rc-update add php-fpm default
Test nginx php
Add test site directory:
Copy code The code is as follows:
mkdir -p /work/www/test
echo "" > /work/www/test/index.php
Add the nginx configuration of the test site:
vim /etc/nginx/nginx.conf
Comment out the server section and add at the end of the http section:
include sites/*.enable;
After that, the configuration file of each site is saved as an independent file in the /etc/nginx/sites directory to facilitate management and maintenance.
mkdir /etc/nginx/sites
vim /etc/nginx/test.enable
test.enable configuration is as follows:
Copy code The code is as follows:
server {
listen 80;
server_name test.local;
access_log /work/www/logs/test.access.log main;
error_log /work/www/logs/test .error.log;
location / {
root /work/www/test;
index index.html index.htm index.php;
}
location ~ \.php$ {
root/work/www/test;
Fastcgi_index Index.php;
Fastcgi_param Script_filename $ Document_root $ FastCript_name;
Include F ASTCGI_PARAMS;
FASTCGI_PASS Unix: /TMP/php-fpm.sock;
}
}
Create a new storage log directory:
mkdir /work/www/logs
Add records in local hosts:
192.168.1.10 test.local
192.168.1.10 is the IP of my gentoo machine.
Reload nginx configuration
/etc/init.d/nginx reload
Access:
http://test.local/
Display normal phpinfo information, The installation is complete.
The above is the detailed content of How to install and configure Nginx+MySQL+PHP environment. For more information, please follow other related articles on the PHP Chinese website!