How to compile and install nginx and php: 1. Install dependency packages through the yum install command; 2. Download the source code package and decompress and compile it; 3. Modify the virtual host configuration file; 4. Start nginx and configure systemctl to start; 5. Download php, unzip and compile it.
The operating environment of this tutorial: windows10 system, php7.2.33 version, DELL G3 computer
How to compile and install nginx and php?
nginx and php compile and install
nginx compile and install
Install dependency packages
yum install -y gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
Download the source code package and unzip it
[root@web03 ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz [root@web03 ~]# tar xf nginx-1.18.0.tar.gz [root@web03 ~]# cd nginx-1.18.0/
Compile source code
[root@web03 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-pcre \ --with-stream \ --with-stream_ssl_module \ --with-stream_realip_module [root@web03 nginx-1.18.0]# make && make install [root@web03 nginx-1.18.0]# cd /usr/local/nginx/ [root@web03 nginx]# tree . ├── conf │ ├── fastcgi.conf │ ├── fastcgi.conf.default │ ├── fastcgi_params │ ├── fastcgi_params.default │ ├── koi-utf │ ├── koi-win │ ├── mime.types │ ├── mime.types.default │ ├── nginx.conf │ ├── nginx.conf.default │ ├── scgi_params │ ├── scgi_params.default │ ├── uwsgi_params │ ├── uwsgi_params.default │ └── win-utf ├── html │ ├── 50x.html │ └── index.html ├── logs └── sbin └── nginx
Basic configuration
[root@web03 nginx]# useradd -s /sbin/nologin -M www [root@web03 conf]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/ [root@web03 nginx]# mkdir conf/conf.d # 拆分默认配置和虚拟主机 user www; worker_processes auto; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; tcp_nopush on; server_tokens off; #keepalive_timeout 0; keepalive_timeout 65; gzip on; include conf.d/*.conf; } #虚拟主机配置文件 [root@web03 conf]# vim conf.d/www.conf server { listen 80; server_name localhost; charset utf-8; location / { root html; index index.html index.htm; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { proxy_pass http://127.0.0.1; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; proxy_set_header Referer $http_referer; proxy_set_header Cookie $http_cookie; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
Start nginx
nginx nginx -s reload 重启
Configure systemctl startup
[root@web03 conf]# cat /usr/lib/systemd/system/nginx.service [Unit] Description=The nginx HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/bin/rm -f /usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true [Install] WantedBy=multi-user.target
php binary
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm yum install php71w
php compile and install
Dependency package
Source code download
[root@web03 ~]# wget http://hk1.php.net/get/php-7.2.33.tar.gz [root@web03 ~]# tar xf php-7.2.33.tar.gz [root@web03 ~]# cd php-7.2.33/
Compile
yum install bzip2 bzip2-devel -y yum install curl curl-devel -y yum install php-mcrypt libmcrypt libmcrypt-devel -y yum install readline-devel -y ./configure --prefix=/usr/local/php7 --enable-fpm \ --with-zlib \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-opcache \ --with-fpm-user=www \ --with-fpm-group=www \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gettext \ --enable-mbstring \ --with-iconv \ --with-mcrypt \ --with-mhash \ --with-openssl \ --enable-bcmath \ --enable-soap \ --with-libxml-dir \ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-sockets \ --with-curl \ --with-zlib \ --enable-zip \ --with-bz2 \ --with-readline make && make install
Configuration
ln -s /usr/local/php/bin/php /usr/bin/php php -i | grep ini Configuration File (php.ini) Path => /usr/local/php/lib Scan this dir for additional .ini files => (none) # 移动php.ini, 从源码拷贝 [root@web03 ~]# cp php-7.2.33/php.ini-production /usr/local/php/lib/php.ini php -i | grep ini Loaded Configuration File => /usr/local/php/lib/php.ini 已经加载配置文件 # php-fpm cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf cp php-fpm.d/www.conf.default php-fpm.d/www.conf # 更改www.conf sed -i 's#nobody#www#g' www.conf
system startup
[root@web03 conf]# cat /usr/lib/systemd/system/php-fpm.service [Unit] Description=php-fpm After=syslog.target network.target [Service] Type=forking ExecStart=/usr/local/php/sbin/php-fpm ExecReload=/bin/kill -USR2 $MAINPID ExecStop=/bin/kill -INT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target # 启动 [root@web03 etc]# systemctl daemon-reload [root@web03 etc]# systemctl start php-fpm.service
Test nginx
[root@web03 sbin]# cd /usr/local/nginx/html/ [root@web03 html]# cat index.php <?php phpinfo() ?> systemctl restart nginx
Test mysql
<?php $link=mysql_connect("172.25.90.14","root","redhat"); if(!$link) echo "FAILD!连接错误,用户名密码不对"; else echo "OK!可以连接"; ?>
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to compile and install nginx and php. For more information, please follow other related articles on the PHP Chinese website!