yum install openssl
yum install libssl-dev
yum install libjpeg-devel
yum install libpng-devel
./configure --prefix=/usr/local/php56 --with-config-file-path=/usr/local/php56/etc --with-zlib-dir --enable-fpm --with-fpm-user=vagrant --with-fpm-group=vagrant --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --with-mysql-sock --enable-pdo --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-libzip=/usr/local/lib/ --with-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear --with-libdir=/lib/x86_64-linux-gnu --with-gd --with-jpeg-dir --enable-gd-native-ttf --enable-xml --enable-ftp --enable-mbregex --with-freetype-dir --with-png-dir --with-xmlrpc --with-imap-ssl
1、xml2-config 这个配置找不到
yum install libxml2-devel -y
sudo find / -name "xml2-config" #查找是否存在,存在说明安装成功
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
sudo ./configure --prefix=/usr/local
make
make install
出现这个问题的原因可能是:
1、手动编译了libmcrypt
2、编译时打开了 --enable-opcache 导致编译不通过
参考地址1
参考地址2
vim /etc/ld.so.conf 时,加入内容 /usr/local/lib 前面不要加 include
编译仍不成功 加入以下链接
ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.20
yum install readline readline-devel
如果下载不到 更新 yum 源
yum源 位置/etc/yum.repos.d
# 是因为 php不支持 mysql模块 要改为
--with-pdo-mysql
安装 yum install bzip2 bzip2-devel
编译时 加上 --with-bz2 --enable-bzip2
make && make test (这一步需要点时间, php要自动测试)
make && sudo make install
cd 到解压后的php7目录
sudo cp php.ini-production /usr/local/php/etc/php.ini
sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
把 php-fpm.conf.default 复制为 php-fpm.conf
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
把 www.conf.default 复制为 www.conf
cd /usr/local/php/etc/php-fpm.d
cp www.conf.default www.conf
cd /usr/local/php/etc
vim php-fpm.conf
找到 include=/usr/local/php/etc/php-fpm.d/*.conf
将 前面的分号去掉,
没有这段代码就加上, 注意路径
cd /usr/local/php/etc/php-fpm.d
找到: listen = /var/run/php-fpm.socket
//把分号去掉 改为
listen = 127.0.0.1:9000 (如果默认等于 127.0.0.1:9000, 就不管)
sudo /usr/local/php/sbin/php-fpm
方法1:killall php-fpm
方法2:用service 管理 php-fpm, nginx也一样。
service php-fpm [start|stop|restart]
centos下 启动 nginx:
启动:service nginx
停止:service nginx -s stop
netstat -an | grep LISTEN | grep 9000
参考地址
新建匿名用户和用户组
新建的用户组和用户主要是在编译配置的时候指定nginx运行的用户和用户组。这样指定后以后配置使用也方便。
sudo groupadd -r nginx
sudo useradd -s /sbin/nologin -g nginx -r nginx
wget http://nginx.org/download/nginx-1.11.10.tar.gz
tar -zxvf nginx-1.11.10.tar.gz
准备编译
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --user=nginx --group=nginx
如果没有错误可以看到下面的显示
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1: using system crypto library
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
在Ubuntu下可能提示需要安装 PCRE, Nginx的HTTP模块需要用它解析正则表达式
sudo apt-get install libpcre3 libpcre3-dev
开始编译安装
make && make install #根据自己都权限,添加 sudo
在系统服务目录里创建nginx.service文件
vi /lib/systemd/system/nginx.service
添加如下内容 启动、关闭、重启都必须是绝对地址
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
保存退出。
systemctl enable nginx.service //启动
systemctl disable nginx.service //停止
systemctl start nginx.service //启动
systemctl restart nginx.service //重启
//查看nginx服务当前状态
systemctl status nginx.service
//查看已启动的服务
systemctl list-units --type=service