Home  >  Article  >  Database  >  How to install and configure Nginx+MySQL+PHP environment

How to install and configure Nginx+MySQL+PHP environment

WBOY
WBOYforward
2023-05-29 23:18:071746browse

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):
/tmp/php-fpm.sock

Modify user Group and user name:

Copy code The code is as follows:

unix user of processes
www
unix group of processes
www

Modify php-fpm running mode to apache-like mode:

Copy code The code is as follows :

apache-like
1
1
5

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!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete