首页 > 编程 > PHP > 正文

PHP环境如何搭建?PHP环境搭建(详解)

2020-03-22 17:52:51
字体:
来源:转载
供稿:网友
PHP环境如何搭建?本篇文章给大家带来的内容是PHP环境如何搭建?PHP环境搭建(详解)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。

按照文章的步骤操作,可以帮助你在CentOS6.*系统上搭建一个LNMP环境或者LAMP环境。这些环境可以作为服务器的线上运行环境。

LNMP准备工作安装wget

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的TCP/IP协议下载,并可以可以使用HTTP代理。

sudo yum install wget
安装net-tools

最小化安装CentOS7时如果无法使用ifconfig命令,则需要安装net-tools(如果是安装的CentOS6版本则无需安装)

sudo yum install net-tools
更新yum源
yum -y update
安装vim
sudo yum install vim
配置显示行号
vim ~/.vimrc输入: set nu 后退出保存
安装Nginx安装依赖

(1) 安装 nginx 需要先将网址下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装gcc-c++。

(2) PCRE是一个Perl库,中文 Perl兼容html' target='_blank'>正则表达式库 。安装Nginx是为了使Nginx支持具备URI重写功能的rewrite模块,如果不安装pcre库,则Nginx无法使用rewrite模块功能,Nginx的Rewrite模块功能几乎是企业应用必须。

(3) zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

(4) OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。 nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要安装 OpenSSL 库 。

yum -y install gcc gcc-c++ zlib zlib-develyum -y install pcre pcre-devel openssl openssl-devel

说明:yum安装方式安装的pcre版本比较低,不过基本不影响使用

检查基础依赖包
rpm -qa pcre pcre-develrpm -qa zlib zlib-develrpm -qa openssl openssl-develrpm -qa pcre pcre-devel
编译安装Nginx
cd ~这里我们默认把安装包都放在了/usr/src目录下cd /usr/src #切换到软件包目录wget http://nginx.org/download/nginx-1.14.0.tar.gz #下载nginx源码包useradd nginx -s /sbin/nologin -M #创建nginx用户用于管理nginx程序tar zxvf nginx-1.14.0.tar.gz #解压nginx源码包cd nginx-1.14.0./configure /--user=nginx /--group=nginx /--prefix=/usr/local/nginx-1.14.0 /--with-http_stub_status_module /--with-http_ssl_modulemake #编译make install #安装cd /usr/localln -s nginx-1.14.0 nginx #创建nginx的软链接
配置环境变量
vim /etc/profileexport PATH= /usr/local/nginx/sbin:$PATH source /etc/profile
开机自启
vim /etc/rc.local# Nginx开机自启/usr/local/nginx/sbin/nginx 
安装说明

编译Nginx软件时,可以使用configure--help查看相关帮助。下面是本次编译时指定的参数及简单说明:

--prefix=PATH #设置安装路劲--user=USER #进程用户权限--group=GROUP #进程用户组权限--with-http_stub_status_module #激活状态信息--with-http_ssl_module #激活ssl功能
语法检查

安装完Nginx后,并不能直接对外提供服务,需要先启动Nginx服务才行,具体操作如下。

/usr/local/nginx/sbin/nginx -t
Nginx命令
/usr/local/nginx/sbin/nginx #启动/usr/local/nginx/sbin/nginx -s stop #立即停止/usr/local/nginx/sbin/nginx -s quit #平滑停止/usr/local/nginx/sbin/nginx -s reload #重载配置/usr/local/nginx/sbin/nginx -s reopen #重开日志
服务启动检查
sudo yum install lsoflsof -i :80
关闭防火墙
CentOS6:service iptables stop 临时关闭chkconfig --level 2345 iptables off 永久关闭CentOS7:systemctl stop firewalld.service #令关闭防火墙systemctl disable firewalld.service #关闭防火墙开机自启动通过浏览器输入IP测试是否成功
安装MySQL安装依赖

(1)cmake是新版MySQL的编译工具

sudo yum install gcc gcc-c++ cmake ncurses-devel 如下的几个依赖在CentOS7中需要安装,CentOS6不需要sudo yum install perl perl-devel autoconf
编译安装MySQL
useradd -s /sbin/nologin -M mysql # 添加MySQL用户wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.41.tar.gztar zxvf mysql-5.6.41.tar.gzcd mysql-5.6.41cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.41 /-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.41/tmp/mysql.sock /-DMYSQL_DATADIR=/usr/local/mysql-5.6.41/data /-DDEFAULT_CHARSET=utf8 /-DDEFAULT_COLLATION=utf8_general_ci /-DWITH_EXTRA_CHARSETS=all /-DWITH_MYISAM_STORAGE_ENGINE=1 /-DWITH_INNOBASE_STORAGE_ENGINE=1 /-DWITH_MEMORY_STORAGE_ENGINE=1 /-DWITH_READLINE=1 /-DWITH_INNODB_MEMCACHED=1 /-DWITH_DEBUG=OFF /-DWITH_ZLIB=bundled /-DENABLED_LOCAL_INFILE=1 /-DENABLED_PROFILING=ON /-DMYSQL_MAINTAINER_MODE=OFF /-DMYSQL_TCP_PORT=3306make make install
配置
cd /usr/local/mysql-5.6.41chown mysql.mysql /usr/local/mysql-5.6.41/datamkdir tmpchown mysql.mysql /usr/local/mysql-5.6.41/tmprm -f /etc/my.cnfcp support-files/my-default.cnf /etc/my.cnfscripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
加入守护进程
cd /usr/localln -s mysql-5.6.41 mysqlcd /usr/local/mysqlcp support-files/mysql.server /etc/init.d/mysqldchkconfig --add mysqld
配置环境变量
vim /etc/profileexport PATH= /usr/local/mysql/bin source /etc/profile
启动MySQL
service mysqld startmysql -u root -p #第一次登陆不需要密码,回车即可set password for root@localhost = password( root #修改密码
安装PHP安装依赖
sudo yum install gcc gcc-c++ zip unzip libxml2 libxml2-devel curl-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd-devel bzip2 bzip2-devel
编译安装PHP
cd ~/packagewget http://hk1.php.net/get/php-7.2.10.tar.gz/from/this/mirror -O php-7.2.10.tar.gztar zxvf php-7.2.10.tar.gzcd php-7.2.10./configure /--prefix=/usr/local/php-7.2.10 /--enable-fpm /--with-fpm-user=nginx /--with-fpm-group=nginx /--with-zlib /--enable-mysqlnd /--with-pdo-mysql=mysqlnd /--with-mysqli=mysqlnd /--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock /--with-gd /--with-png-dir /--with-jpeg-dir /--with-freetype-dir /--with-iconv-dir /--with-openssl /--with-curl /--enable-mbstring /--enable-static /--enable-zip /--enable-sockets /--enable-xml
make make install

编译参数详解

./configure /--prefix=/usr/local/php-7.2.7 / # 指定安装路径--enable-fpm / # 表示激活PHP-FPM方式服务,即FactCGI方式运行PHP服务。--with-fpm-user=nginx / # 指定PHP-FPM进程管理的用户为www,此处最好和Nginx服务用户统一。--with-fpm-group=nginx / # 指定PHP-FPM进程管理用户组为www,此处最好和Nginx服务用户组统一。--with-zlib / # 打开zlib库的支持,用于http压缩传输--enable-mysqlnd /--with-pdo-mysql=mysqlnd /--with-mysqli=mysqlnd /--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock /--with-gd / # 打开gd库的支持--with-png-dir /--with-jpeg-dir /--with-freetype-dir /--with-openssl / # 打开openssl,加密传输时用到--with-curl / # 打开curl浏览工具的支持 --enable-mbstring / # 多字节,字符串的支持--enable-static / # 生成静态链接库--enable-zip / # 打开对zip的支持--enable-sockets / # 打开 sockets 支持--enable-xml
配置
cd /usr/localln -s php-7.2.10 php cp /usr/src/php-7.2.10/php.ini-development /usr/local/php-7.2.10/lib/php.ini vim /usr/local/php/lib/php.ini date.timezone = PRC (大约在932行) expose_php = Off #避免PHP信息暴露在http头中(大约369行) display_errors = Off(生产环境设置为off,开发环境就设置为On,便于调试) 说明:设置了dispaly_errors为off后,需要在php-fpm.conf中开启错误日志记录路径error_log = log/php-fpm.logcd php cp etc/php-fpm.conf.default etc/php-fpm.confcd /usr/local/php/etc/php-fpm.d/cp www.conf.default www.confcd /usr/local/phpsbin/php-fpmps -e | grep php-fpm如果在编译PHP时指定了--with-mysql=mysqlnd和--with-pdo-mysql=mysqlnd的参数,那么在生产中可能会遇到socket连接问题,解决办法是在php.ini里加入命令: pdo_mysql.default_socket=/usr/local/mysql/tmp/mysql.sock最好是在编译PHP的时候,指定mysql.socket的位置:--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock
开机自启
vim /etc/rc.local# PHP-FPM自动启动/usr/local/php/sbin/php-fpm 
管理PHP-FPM

记录pid

vi /usr/local/php/etc/php-fpm.confpid = run/php-fpm.piderror_log = log/php-fpm.log #24行这个在php.ini设置display_errors = Off时启用设置完之后重启服务器向进程发送信号,就可以完成进程管理停止: kill -INT `cat /usr/local/php/var/run/php-fpm.pid`平滑停止: kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`重启:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`重新打开日志:kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`
配置Nginx和PHP关联

nginx.conf配置

#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;
# 设置读取客户端请求头数据的超时时间。此处的数值为15,其单位是秒,为经验参考值 client_header_timeout 15; # 设置读取客户端请求体的超时时间 client_body_timeout 15; # 指定响应客户端的超时时间 send_timeout 25; # 上传文件大小限制 client_max_body_size 8m; #压缩配置 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/css text/xml application/javascript; gzip_vary on; #include extra/gzip.config; #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; #keepalive_timeout 0; keepalive_timeout 65; include extra/*.conf;}

在conf目录下新建一个extra目录,专门用于配置虚拟机

例如,我们想配置一个www.nginx.con的域名,我们可以在extra下新建一个nginx.conf

server { listen 80; server_name www.nginx.com; root html/blog/public; #access_log logs/host.access.log main; location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ /.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+/.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;}
Nginx优化
# 开启gzip压缩功能gzip on;# 设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认是0,表示不管页面多大都进行压缩。建议设置成1K,如果小于1K可能会越压越大。gzip_min_length 1k;# 压缩缓冲区大小。表示申请4个单位为32k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存来存储gzip压缩结果gzip_buffers 4 32k;# 压缩版本(默认1.1,前端为squid2.5时使用1.0),用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可gzip_http_version 1.1;# 压缩比率。用来指定gzip压缩比,1压缩比最小,处理速度最快; 9压缩比最大,传输速度快,但处理最慢,也比较消耗CPU资源。gzip_comp_level 2;# 指定压缩类型gzip_types text/css text/xml application/javascript;# header支持。该选项可以让前端的缓存服务器缓存经过gzip压缩的页面,例如用Squid缓存经过Nginx压缩的数据gzip_vary on;
LAMP安装依赖
sudo yum install gcc gcc-c++ perl perl-devel expat expat-devel autoconf libtool openssl openssl-devel
安装apr
下载地址:http://apr.apache.orgtar -zxvf apr-1.6.3.tar.gzcd apr-1.6.3./configure --prefix=/usr/local/aprmake make install
安装apr-util
下载地址:http://apr.apache.org/tar -zxvf apr-util-1.6.1.tar.gzcd apr-util-1.6.1./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/aprmake make install
安装pcre
下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/tar zxvf pcre-8.42.tar.gzcd pcre-8.42./configure --prefix=/usr/local/pcremake make install
安装Apache
tar zxvf httpd-2.4.33.tar.gzcd httpd-2.4.33./configure /--prefix=/usr/local/apache /--enable-ssl /--enable-so /--with-apr=/usr/local/apr /--with-apr-util=/usr/local/apr-util /--with-pcre=/usr/local/pcremake make install
配置环境变量
vi /etc/profileexport PATH= $PATH:/usr/local/apache/bin source /etc/profile
开机自启
vim /etc/rc.d/rc.local/usr/local/apache/bin/apachectl start
配置
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bakcp /usr/local/apache/conf/extra/httpd-vhosts.conf /usr/local/apache/conf/extra/httpd-vhosts.conf.bakvi /usr/local/apache/conf/httpd.conf去掉152行前面的#号,开启重写模块去掉194行前面的#号,去除错误信息239行允许重写 AllowOverride All开启Apache:apachectl -k start
关闭防火墙
CentOS6:service iptables stop 临时关闭chkconfig --level 2345 iptables off 永久关闭CentOS7:systemctl stop firewalld.service #令关闭防火墙systemctl disable firewalld.service #关闭防火墙开机自启动通过浏览器输入IP测试成功
安装MySQL安装依赖

(1)cmake是新版MySQL的编译工具

sudo yum install gcc gcc-c++ cmake ncurses-devel 如下的几个依赖在CentOS7中需要安装,CentOS6不需要sudo yum install perl perl-devel autoconf
编译安装MySQL
useradd -s /sbin/nologin -M mysql # 添加MySQL用户cd mysql-5.6.40cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.40 /-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.40/tmp/mysql.sock /-DMYSQL_DATADIR=/usr/local/mysql-5.6.40/data /-DDEFAULT_CHARSET=utf8 /-DDEFAULT_COLLATION=utf8_general_ci /-DWITH_EXTRA_CHARSETS=all /-DWITH_MYISAM_STORAGE_ENGINE=1 /-DWITH_INNOBASE_STORAGE_ENGINE=1 /-DWITH_MEMORY_STORAGE_ENGINE=1 /-DWITH_READLINE=1 /-DWITH_INNODB_MEMCACHED=1 /-DWITH_DEBUG=OFF /-DWITH_ZLIB=bundled /-DENABLED_LOCAL_INFILE=1 /-DENABLED_PROFILING=ON /-DMYSQL_MAINTAINER_MODE=OFF /-DMYSQL_TCP_PORT=3306make install
配置
cd /usr/local/mysql-5.6.40chown mysql.mysql /usr/local/mysql-5.6.40/datamkdir tmpchown mysql.mysql /usr/local/mysql-5.6.40/tmprm -f /etc/my.cnfcp support-files/my-default.cnf /etc/my.cnfscripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
加入守护进程
cd /usr/localln -s mysql-5.6.40 mysqlcd //usr/local/mysqlcp support-files/mysql.server /etc/init.d/mysqldchkconfig --add mysqld
配置环境变量
vi /etc/profileexport PATH= /usr/local/mysql/bin source /etc/profile
启动MySQL
service mysqld startmysql -u root -p #第一次登陆不需要密码,回车即可set password for root@localhost = password( root #修改密码
安装PHP编译安装PHP
tar zxvf php-7.2.3.tar.gzcd php-7.2.3./configure /--prefix=/usr/local/php /--enable-mysqlnd /--with-mysqli=mysqlnd /--with-pdo-mysql=mysqlnd /--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock /--with-apxs2=/usr/local/apache/bin/apxs /--with-zlib /--with-gd /--with-png-dir /--with-jpeg-dir /--with-freetype-dir /--with-openssl /--enable-mbstring /--enable-xml /--enable-zip /--enable-sockets /--with-curlmake make install
配置Apache与PHP关联
vi /usr/local/apache/conf/httpd.conf# 加入 在 加载了PHP模块之后 FilesMatch /.php$  SetHandler application/x-httpd-php /FilesMatch # 保存,退出,重启
配置环境变量
vi /etc/profileexport PATH= $PATH:/usr/local/php/bin source /etc/profilecp /root/package/php-7.2.3/php.ini-development /usr/local/php/lib/php.inivi /usr/local/php/lib/php.inidate.timezone = PRC (大约在932行)
配置虚拟主机
vi /usr/local/apache/conf/httpd.conf258行,默认首页加入index.php483行,开启虚拟主机支持vi /usr/local/apache/conf/extra/httpd-vhosts.confvi /usr/local/apache/conf/extra/httpd-vhosts.conf VirtualHost *:80  ServerAdmin www.huiwan.com DocumentRoot /mnt/hgfs/web/huiwan  ServerName www.huiwan.com #ErrorLog logs/dummy-host2.example.com-error_log  #CustomLog logs/dummy-host2.example.com-access_log common Directory /mnt/hgfs/web/huiwan  Options indexes Multiviews AllowOverride All Require all granted /Directory  /VirtualHost 

以上就是本篇的全部内容,更多相关教程请访问php编程从入门到精通全套视频教程,php实战视频教程,bootstrap视频教程!

以上就是PHP环境如何搭建?PHP环境搭建(详解)的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表