Centos7编译安装nginx1.15+MariaDB10.3+php-7.2
Posted chenxiaoweiworkinghard
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7编译安装nginx1.15+MariaDB10.3+php-7.2相关的知识,希望对你有一定的参考价值。
环境准备:
yum源:wget -c http://mirrors.163.com/.help/CentOS7-Base-163.repo -O /etc/yum.repo.d/CentOS7-Base-163.repo
下载软件包:
wget -c https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.3.9/source/mariadb-10.3.9.tar.gz
wget -c http://nginx.org/download/nginx-1.15.3.tar.gz
wget -c http://cn2.php.net/distributions/php-7.2.10.tar.gz
安装nginx依赖包:
yum update -y
yum -y groupinstall "Development tools"
yum -y install gcc wget gcc-c++ automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl-devel cmake
新建nginx用户和用户组:
groupadd nginx
useradd -g nginx -s /sbin/nologin nginx
安装nginx1.15.3
tar -xvf nginx-1.15.3.tar.gz
cd nginx-1.15.3
./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --user=nginx --group=nginx --with-pcre --with-http_v2_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-threads --with-stream --with-stream_ssl_module
make
make install
mkdir -pv /var/tmp/nginx/client
新建nginx启动脚本
vim /etc/init.d/nginx
1 #!/bin/sh
2 #
3 # nginx - this script starts and stops the nginx daemon
4 #
5 # chkconfig: - 85 15
6 # description: Nginx is an HTTP(S) server, HTTP(S) reverse
7 # proxy and IMAP/POP3 proxy server
8 # processname: nginx
9 # config: /etc/nginx/nginx.conf
10 # config: /etc/sysconfig/nginx
11 # pidfile: /var/run/nginx.pid
12 # Source function library.
13 . /etc/rc.d/init.d/functions
14 # Source networking configuration.
15 . /etc/sysconfig/network
16 # Check that networking is up.
17 [ "$NETWORKING" = "no" ] && exit 0
18 nginx="/usr/sbin/nginx"
19 prog=$(basename $nginx)
20 NGINX_CONF_FILE="/etc/nginx/nginx.conf"
21 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
22 lockfile=/var/lock/subsys/nginx
23 start() {
24 [ -x $nginx ] || exit 5
25 [ -f $NGINX_CONF_FILE ] || exit 6
26 echo -n $"Starting $prog: "
27 daemon $nginx -c $NGINX_CONF_FILE
28 retval=$?
29 echo
30 [ $retval -eq 0 ] && touch $lockfile
31 return $retval
32 }
33 stop() {
34 echo -n $"Stopping $prog: "
35 killproc $prog -QUIT
36 retval=$?
37 echo
38 [ $retval -eq 0 ] && rm -f $lockfile
39 return $retval
40 killall -9 nginx
41 }
42 restart() {
43 configtest || return $?
44 stop
45 sleep 1
46 start
47 }
48 reload() {
49 configtest || return $?
50 echo -n $"Reloading $prog: "
51 killproc $nginx -HUP
52 RETVAL=$?
53 echo
54 }
55 force_reload() {
56 restart
57 }
58 configtest() {
59 $nginx -t -c $NGINX_CONF_FILE
60 }
61 rh_status() {
62 status $prog
63 }
64 rh_status_q() {
65 rh_status >/dev/null 2>&1
66 }
67 case "$1" in
68 start)
69 rh_status_q && exit 0
70 $1
71 ;;
72 stop)
73 rh_status_q || exit 0
74 $1
75 ;;
76 restart|configtest)
77 $1
78 ;;
79 reload)
80 rh_status_q || exit 7
81 $1
82 ;;
83 force-reload)
84 force_reload
85 ;;
86 status)
87 rh_status
88 ;;
89 condrestart|try-restart)
90 rh_status_q || exit 0
91 ;;
92 *)
93 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
94 exit 2
95 esac
chmod u+x /etc/init.d/nginx
chkconfig --add nginx
chkconfig nginx on
service nginx start
安装MariaDB依赖包
yum -y install gcc wget gcc-c++ automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl-devel cmake ncurses-devel bison
新建mysql用户及用户组
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
mkdir -pv /var/mysql/data
chown -R mysql.mysql /var/mysql
mv /etc/my.cnf /etc/my.cnf.bak
安装MariaDB10.3.9
tar -xvf mariadb-10.3.9.tar.gz
cd mariadb-10.3.9
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/var/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
make
make install
chown -R mysql:mysql /usr/local/mysql/
新建MariaDB启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod u+x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
初始化MariaDB
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/var/mysql/data/ --basedir=/usr/local/mysql
vim /etc/my.cnf
1 [mysqld]
2 datadir=/var/mysql/data
3 basedir=/usr/local/mysql
4 socket=/tmp/mysql.sock
5 log_bin=/var/mysql/logbin
6 user=mysql
7 port=3306
8 # Disabling symbolic-links is recommended to prevent assorted security risks
9 symbolic-links=0
10 # Settings user and group are ignored when systemd is used.
11 # If you need to run mysqld under a different user or group,
12 # customize your systemd unit file for mariadb according to the
13 # instructions in http://fedoraproject.org/wiki/Systemd
14
15 [mysqld_safe]
16 log-error=/var/log/mariadb/mariadb.log
17 pid-file=/var/lib/mysql/mysql.pid
18 #
19 # include all files from the config directory
20 #
21 !includedir /etc/my.cnf.d
service mysqld start
/usr/local/mysql/bin/mysql_secure_installation #设置MairiaDB密码
添加mysql至环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
source /etc/profile
安装php依赖包
yum install epel-release -y
yum install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel libpng-devel libjpeg-devel freetype-devel libtidy-devel libtidy libcurl-devel gmp-devel libicu-devel openldap openldap-devel libsmbclient ImageMagick-devel readline-devel libc-client-devel zlib1g-dev -y
ln -s /usr/lib64/libc-client.so /usr/lib/
ln -s /usr/lib64/libssl.so /usr/lib/
ln -s /usr/lib64/libldap.so /usr/lib/
cp -frp /usr/lib64/libldap* /usr/lib/
安装php-7.2
tar -xvf php-7.2.10.tar.gz
cd php-7.2.10
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-fpm-user=nginx --with-fpm-group=nginx --enable-fpm --with-mhash --with-openssl --enable-bcmath --enable-mbstring --enable-calendar --enable-json --enable-ftp --enable-sockets --enable-session --enable-soap --with-gmp --with-kerberos --with-imap --with-imap-ssl --with-mysqli --with-pdo-mysql --enable-inline-optimization --with-mhash --with-gd --with-jpeg-dir --with-png-dir --with-pcre-dir --with-freetype-dir --with-curl --with-gettext --with-bz2 --enable-mysqlnd --with-gettext --enable-bcmath --with-iconv-dir --without-pear
make
make install
mkdir -p /var/lib/php/session
chown nginx:nginx -R /var/lib/php/session/
创建php启动脚本
cp /root/php-7.2.10/php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
ln -s /usr/local/php/etc/php.ini /usr/local/etc/
ln -s /usr/local/php/etc/php-fpm.conf /usr/local/etc/
ln -s /usr/local/php/etc/php-fpm.d/www.conf /usr/local/etc/
cp /root/php-7.2.10/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod u+x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
service php-fpm start
添加php至环境变量
echo "export PATH=$PATH:/usr/local/php/bin" >>/etc/profile
source /etc/profile
nginx支持php
vim /etc/nginx.nginx.conf
1 #user nobody;
2 worker_processes 1;
3
4 #error_log logs/error.log;
5 #error_log logs/error.log notice;
6 #error_log logs/error.log info;
7
8 #pid logs/nginx.pid;
9
10
11 events {
12 worker_connections 1024;
13 }
14
15
16 http {
17 include mime.types;
18 default_type application/octet-stream;
19
20 #log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
21 # ‘$status $body_bytes_sent "$http_referer" ‘
22 # ‘"$http_user_agent" "$http_x_forwarded_for"‘;
23
24 #access_log logs/access.log main;
25
26 sendfile on;
27 #tcp_nopush on;
28
29 #keepalive_timeout 0;
30 keepalive_timeout 65;
31
32 #gzip on;
33
34 server {
35 listen 80;
36 server_name localhost;
37
38 #charset koi8-r;
39
40 #access_log logs/host.access.log main;
41
42 location / {
43 root /usr/local/nginx/html;
44 index index.php index.html index.htm;
45 }
46
47 #error_page 404 /404.html;
48
49 # redirect server error pages to the static page /50x.html
50 #
51 error_page 500 502 503 504 /50x.html;
52 location = /50x.html {
53 root /usr/local/nginx/html;
54 }
55
56 # proxy the PHP scripts to Apache listening on 127.0.0.1:80
57 #
58 #location ~ .php$ {
59 # proxy_pass http://127.0.0.1;
60 #}
61
62 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
63 #
64 location ~ .php$ {
65 root /usr/local/nginx/html;
66 fastcgi_pass 127.0.0.1:9000;
67 fastcgi_index index.php;
68 fastcgi_param SCRIPT_FILENAME usr/local/nginx/html/$fastcgi_script_name;
69 include fastcgi_params;
70 }
71
72 # deny access to .htaccess files, if Apache‘s document root
73 # concurs with nginx‘s one
74 #
75 #location ~ /.ht {
76 # deny all;
77 #}
78 }
79
80
81 # another virtual host using mix of IP-, name-, and port-based configuration
82 #
83 #server {
84 # listen 8000;
85 # listen somename:8080;
86 # server_name somename alias another.alias;
87
88 # location / {
89 # root html;
90 # index index.html index.htm;
91 # }
92 #}
93
94
95 # HTTPS server
96 #
97 #server {
98 # listen 443 ssl;
99 # server_name localhost;
100
101 # ssl_certificate cert.pem;
102 # ssl_certificate_key cert.key;
103
104 # ssl_session_cache shared:SSL:1m;
105 # ssl_session_timeout 5m;
106
107 # ssl_ciphers HIGH:!aNULL:!MD5;
108 # ssl_prefer_server_ciphers on;
109
110 # location / {
111 # root html;
112 # index index.html index.htm;
113 # }
114 #}
115
116 }
添加测试页面
vim /usr/local/nginx/html/index.php
<?php
$conn=mysqli_connect(‘127.0.0.1‘,‘root‘,‘yh984664‘);
if ($conn){
echo "LNMP platform connect to mysql is successful!";
}else{
echo "LNMP platform connect to mysql is failed!";
}
phpinfo();
?>
以上是关于Centos7编译安装nginx1.15+MariaDB10.3+php-7.2的主要内容,如果未能解决你的问题,请参考以下文章
Arm架构下CentOS7.6操作系统网络离线状态下安装MySQL8