安装PHP-7.0.16
- 1、下载安装包 并解压
- 2、安装一些需要的依赖包
yum install openssl
yum install libssl-dev
yum install libjpeg-devel
yum install libpng-devel
- 3、cd 到解压后的目录
- 4、编译: 具体参数代表什么意思,可以看 PHP文档
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-zlib --enable-zip --with-openssl --enable-fpm --enable-mbstring --with-libdir=lib64 --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 --with-iconv --with-mcrypt --with-mhash --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --with-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear --with-gd --with-jpeg-dir --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" #查找是否存在,存在说明安装成功
- 2、mcrypt not found
参考地址
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
- 3、configure: error: Don’t know how to define struct flock on this system, set --enable-opcache=no
出现这个问题的原因可能是:
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
- 4、找不到 readline.h
yum install readline readline-devel
如果下载不到 更新 yum 源
yum源 位置/etc/yum.repos.d
- 5、configure: WARNING: unrecognized options: --with-mysql
# 是因为 php不支持 mysql模块 要改为
--with-pdo-mysql
- 6、configure: WARNING: unrecognized options: --enable-bz2
安装 yum install bzip2 bzip2-devel
编译时 加上 --with-bz2 --enable-bzip2
- 7 如果编译成功
make && make test (这一步需要点时间, php要自动测试)
make && sudo make install
- 8 对php-fpm进行配置
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
- 配置php-fpm
cd /usr/local/php/etc
vim php-fpm.conf
找到 include=/usr/local/php/etc/php-fpm.d/*.conf
将 前面的分号去掉,
没有这段代码就加上, 注意路径
- 配置 www.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, 就不管)
- 启动php-fpm
sudo /usr/local/php/sbin/php-fpm
- 关闭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-1.11.10
参考地址
新建匿名用户和用户组
新建的用户组和用户主要是在编译配置的时候指定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 为开机启动
参考地址
在centos 7 下 使用 chkconfig --add nginx 无法添加
使用 Systemd 为nginx设置开机启动
在系统服务目录里创建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 //停止
- 启动nginx服务
systemctl start nginx.service //启动
systemctl restart nginx.service //重启
//查看nginx服务当前状态
systemctl status nginx.service
//查看已启动的服务
systemctl list-units --type=service