update: 2017-12-19 PHP7.2.0开始移除mcrypt模块,移除libmcrypt、libmcrypt-devel、mcrypt包和相应的PHP编译–enable-gd-native-ttf 和–with-mcrypt参数。
安装mcrypt参考:编译安装的PHP7.2如何安装mcrypt扩展系统环境和对应软件版本。
systemos:centos7.6以上
nginx-1.17.6
MariaDB-10.4.10
php-7.3.12
1、安装EPEL源
[root@uscdn1 ~]# yum -y install epel-release.noarch
1.1、firewalld开放http和https端口
[root@uscdn1 ~]# firewall-cmd --zone=public --add-service=http --permanent
[root@uscdn1 ~]# firewall-cmd --zone=public --add-service=https --permanent
[root@uscdn1 ~]# firewall-cmd --reload
1.2、安装相关依赖包:
[root@uscdn1 ~]# yum -y install gcc gcc-c++ make cmake perl autoconf automake libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel openssl openssl-devel pcre pcre-devel libtool pcre-devel libaio-devel libaio bzip2-devel libcurl-devel gd-devel bison bison-devel mhash openldap openldap-devel libicu-devel
1.3、更新系统
[root@uscdn1 ~]# yum -y update
1.4、设置系统时间
[root@uscdn1 ~]# timedatectl set-timezone Asia/Hong_Kong
[root@uscdn1 ~]# timedatectl
1.5、创建openladp库链接
[root@uscdn1 ~]# cp -frp /usr/lib64/libldap* /usr/lib/
1.6、删除原有的libzip包 并安装libzip-1.2.0
[root@uscdn1 ~]# yum remove libzip*
[root@uscdn1 ~]# cd /usr/local/src
[root@uscdn1 ~]# wget https://nih.at/libzip/libzip-1.2.0.tar.gz
[root@uscdn1 ~]# tar xf libzip-1.2.0.tar.gz
[root@uscdn1 ~]# tar xf libzip-1.2.0
[root@uscdn1 ~]# cd libzip-1.2.0
[root@uscdn1 ~]# ./configure && make && make install
[root@uscdn1 ~]# cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
1.7、重新配置加载ld.so.conf文件
[root@uscdn1 ~]# echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
# 更新配置
[root@uscdn1 ~]# ldconfig -v
2、添加nginx stable(稳定版)源 ,在http://nginx.org/packages/centos/7/noarch/RPMS/ 查看最新库信息
###稳定版:
Centos 7:
[root@uscdn1 ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
Centos 6:
[root@uscdn1 ~]# rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
2.1、添加nginx mainline(长期开发版)源
[root@uscdn1 ~]# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
2.2、安装nginx,nginx启动和自启动
[root@uscdn1 ~]# yum -y install nginx
[root@uscdn1 ~]# systemctl enable nginx.service
[root@uscdn1 ~]# systemctl start nginx.service
nginx配置文件位置(配置文件都是一样的)
nginx主配置文件:/etc/nginx/nginx.conf
nginx默认配置文件目录:/etc/nginx/conf.d/
nginx默认站点主目录:/usr/share/nginx/html/
nginx默认日志目录:/var/log/nginx/
3、建mariadb源
[root@uscdn1 ~]# vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
3.1、安装mariadb
[root@uscdn1 ~]# yum install -y MariaDB-shared MariaDB-server MariaDB-client MariaDB MariaDB-devel jemalloc -y
启动和自启动
[root@uscdn1 ~]# systemctl enable mariadb.service
[root@uscdn1 ~]# systemctl start mariadb.service
初始化MySQL数据库并创建密码
[root@uscdn1 ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2021
Server version: 10.4.10-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'mysqlrootpwd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost' IDENTIFIED BY 'mysqlrootpwd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysqlrootpwd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'mysqlrootpwd';
MariaDB [(none)]> use mysql;
MariaDB [(none)]> delete from user where password="";
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
4、安装PHP
[root@uscdn1 ~]# wget http://php.net/distributions/php-7.3.12.tar.gz
[root@uscdn1 ~]# tar xf php-7.3.12.tar.gz
[root@uscdn1 ~]# cd php-7.3.12
[root@uscdn1 ~]# vi config.nice
#! /bin/sh
#
# Created by configure
'./configure' \
'--prefix=/usr/local/php' \
'--with-config-file-path=/usr/local/php/etc' \
'--enable-fpm' \
'--with-fpm-user=nobody' \
'--with-fpm-group=nobody' \
'--enable-mysqlnd' \
'--with-mysqli=mysqlnd' \
'--with-pdo-mysql=mysqlnd' \
'--enable-mysqlnd-compression-support' \
'--with-iconv-dir' \
'--with-freetype-dir' \
'--with-jpeg-dir' \
'--with-png-dir' \
'--with-zlib' \
'--with-libxml-dir' \
'--enable-xml' \
'--disable-rpath' \
'--enable-bcmath' \
'--enable-shmop' \
'--enable-sysvsem' \
'--enable-inline-optimization' \
'--with-curl' \
'--enable-mbregex' \
'--enable-mbstring' \
'--enable-intl' \
'--enable-ftp' \
'--with-gd' \
'--enable-gd-jis-conv' \
'--with-openssl' \
'--with-mhash' \
'--enable-pcntl' \
'--enable-sockets' \
'--with-xmlrpc' \
'--enable-zip' \
'--enable-soap' \
'--with-gettext' \
'--enable-opcache' \
'--with-pear' \
'--with-ldap=shared' \
'--enable-embed' \
'--without-gdbm' \
'--enable-fast-install' \
'--disable-fileinfo' \
'--without-sqlite3' \
'--without-pdo-sqlite' \
"$@"
[root@uscdn1 ~]# chmod +x config.nice
[root@uscdn1 ~]# ./config.nice && make && make install
[root@uscdn1 php-7.3.12]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
[root@uscdn1 php-7.3.12]# cp php.ini-production /usr/local/php/etc/php.ini
[root@uscdn1 ~]# cd /usr/local/php/etc
[root@uscdn1 ~]# cp php-fpm.conf.default php-fpm.conf
[root@uscdn1 ~]# cd php-fpm.d
[root@uscdn1 ~]# cp www.conf.default www.conf
添加PHP-fpm自启动和启动
[root@uscdn1 ~]# systemctl enable php-fpm.service
[root@uscdn1 ~]# systemctl start php-fpm.service
UPDATE:2017/7/11,PHP7已经自带了CENTOS 7的启动脚本不需要重写脚本,直接复制就可以了:
CENTOS 6
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
CENTOS 7
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
PHP编译参数详解:
./configure \
--prefix=/usr/local/php \ [php安装的根目录]
--exec-prefix=/usr/local/php \ [php执行文件所在目录]
--bindir=/usr/local/php/bin \ [php/bin目录]
--sbindir=/usr/local/php/sbin \ [php/sbin目录]
--includedir=/usr/local/php/include \ [php包含文件所在目录]
--libdir=/usr/local/php/lib/php \ [php/lib目录]
--mandir=/usr/local/php/php/man \ [php/man目录]
--with-config-file-path=/usr/local/php/etc \ [php的配置目录]
--with-mysql-sock=/var/run/mysql/mysql.sock \ [php的Unix socket通信文件]
--with-mcrypt \ [是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启]
--with-mhash \ [Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启]
--with-openssl \ [OpenSSL 是一个安全套接字层密码库]
--with-mysqli=shared,mysqlnd \ [php依赖mysql库]
--with-pdo-mysql=shared,mysqlnd \ [php依赖mysql库]
--with-gd \ [gd库]
--with-iconv \ [关闭iconv函数,种字符集间的转换]
--with-zlib \ [zlib是提供数据压缩用的函式库]
--enable-zip \ [打开对zip的支持]
--enable-inline-optimization \ [优化线程]
--disable-debug \ [关闭调试模式]
--disable-rpath \ [关闭额外的运行库文件]
--enable-shared \ [启用动态库]
--enable-xml \ [开启xml扩展]
--enable-bcmath \ [打开图片大小调整,用到zabbix监控的时候用到了这个模块]
--enable-shmop \ [共享内存]
--enable-sysvsem \ [内存共享方案]
--enable-mbregex \ [开启多字节正则表达式的字符编码。]
--enable-mbstring \ [开启多字节字符串函数]
--enable-ftp \ [开启ftp]
--enable-gd-native-ttf \ [开启gd库原有字体]
--enable-pcntl \ [PHP的进程控制支持实现了Unix方式的多进程创建]
--enable-sockets \ [开启套节字]
--with-xmlrpc \ [打开xml-rpc的c语言]
--enable-soap \ [开启简单对象访问协议简单对象访问协议]
--without-pear \ [开启php扩展与应用库]
--with-gettext \ [开户php在当前域中查找消息]
--enable-session \ [允许php会话session]
--with-curl \ [允许curl扩展]
--with-jpeg-dir \ [指定jpeg安装目录yum安装过后不用再次指定会自动找到]
--with-freetype-dir \ [指定freetype安装目录yum安装过后不用再次指定会自动找到]
--enable-opcache \ [开启使用opcache缓存]
--enable-fpm \ [开启fpm]
--with-fpm-user=nginx \ [php-fpm的用户]
--with-fpm-group=nginx \ [php-fpm的用户组]
--without-gdbm \ [数据库函数使用可扩展散列和类似于标准UNIX dbm的工作]
--enable-fast-install \ [为快速安装优化]
还没有任何评论,你来说两句吧