centosyumphpfpm
A. 如何在CentOS 6上通过YUM安装Nginx和php-FPM
准备篇:
1、配置防火墙,开启80端口、3306端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许3306端口通过防火墙)
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面
添加好之后防火墙规则如下所示:
#########################################################
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#########################################################
/etc/init.d/iptables restart #最后重启防火墙使配置生效
2、关闭SElinux
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,关闭
shutdown -r now #重启系统
3、配置CentOS 6.2 第三方yum源(CentOS默认的标准源里没有nginx软件包)
yum install wget #安装下载工具wget
1
wget http://www.atomicorp.com/installers/atomic
#下载atomic yum源
sh ./atomic #安装
yum check-update #更新yum软件包
################################################################
安装篇:
一、安装nginx
yum install nginx #安装nginx,根据提示,输入Y安装即可成功安装
service nginx start #启动
chkconfig nginx on #设为开机启动
/etc/init.d/nginx restart #重启
rm -rf /usr/share/nginx/html/* #删除ngin默认测试页
二、安装Mysql
1、安装mysql
yum install mysql mysql-server #询问是否要安装,输入Y即可自动安装,直到安装完成
/etc/init.d/mysqld start #启动MySQL
chkconfig mysqld on #设为开机启动
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
shutdown -r now #重启系统
2、为root账户设置密码
mysql_secure_installation
回车,根据提示输入Y
输入2次密码,回车
根据提示一路输入Y
最后出现:Thanks for using MySQL!
MySql密码设置完成,重新启动 MySQL:
/etc/init.d/mysqld stop #停止
/etc/init.d/mysqld start #启动
service mysqld restart #重启
三、安装PHP
1、安装PHP
yum install php #根据提示输入Y直到安装完成
2、安装PHP组件,使PHP支持 MySQL、PHP支持FastCGI模式
1
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm
#根据提示输入Y回车
/etc/init.d/mysqld restart #重启MySql
/etc/init.d/nginx restart #重启nginx
/etc/rc.d/init.d/php-fpm start #启动php-fpm
chkconfig php-fpm on #设置开机启动
################################################################
配置篇
一、配置nginx支持php
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak #备份原有配置文件
vi /etc/nginx/nginx.conf #编辑
user nginx nginx; #修改nginx运行账号为:nginx组的nginx用户
:wq! #保存退出
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak #备份原有配置文件
vi /etc/nginx/conf.d/default.conf #编辑
index index.php index.html index.htm; #增加index.php
1
2
3
4
5
6
7
8
9
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
二、配置php
vi /etc/php.ini #编辑
date.timezone = PRC #在946行 把前面的分号去掉,改为date.timezone = PRC
1
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在386行 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在432行 禁止显示php版本的信息
magic_quotes_gpc = On #在745行 打开magic_quotes_gpc来防止SQL注入
open_basedir = .:/tmp/ #在380行,设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题,可注销此行,或者直接写上程序目录路径/var/www/html/www.osyunwei.com/:/tmp/
:wq! #保存退出
三、配置php-fpm
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak #备份原有配置文件
vi /etc/php-fpm.d/www.conf #编辑
user = nginx #修改用户为nginx
group = nginx #修改组为nginx
/etc/init.d/mysqld restart #重启MySql
/etc/init.d/nginx restart #重启nginx
/etc/rc.d/init.d/php-fpm restart #重启php-fpm
################################################################
测试篇
cd /usr/share/nginx/html/ #进入nginx默认网站根目录
vi index.php #新建index.php文件
1
2
3
<?php
phpinfo();
?>
:wq! #保存
chown nginx.nginx /usr/share/nginx/html/ -R #设置目录所有者
chmod 700 /usr/share/nginx/html/ -R #设置目录权限
在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
################################################################
备注
nginx默认站点目录是:/usr/share/nginx/html/
权限设置:chown nginx.nginx /usr/share/nginx/html/ -R
MySQL数据库目录是:/var/lib/mysql
权限设置:chown mysql.mysql -R /var/lib/mysql
B. php-fpm子进程会自动重启吗
服务器出现异常,网站不能正常访问。经排查�php的问题。
在重启php-fpm时,恢复正常。1分钟之后又出现故障。查看php日志文件/usr/local/php/var/log 后提示
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
子进程数已经达到设置的最大值。
要设置php进程数量。需要在php-fpm.conf文件中修改。
先看/usr/local/php/etc/php-fpm.conf文件各项配置解析
pid = run/php-fpm.pid
#pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启
error_log = log/php-fpm.log
#错误日志,默认在安装目录中的var/log/php-fpm.log
log_level = notice
#错误级别. 可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.
emergency_restart_threshold = 60
emergency_restart_interval = 60s
#表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值。
process_control_timeout = 0
#设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0.
daemonize = yes
#后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。
listen = 127.0.0.1:9000
#fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: ‘ip:port’, ‘port’, ‘/path/to/unix/socket’. 每个进程池都需要设置.
listen.backlog = -1
#backlog数,-1表示无限制,由操作系统决定,此行注释掉就行。backlog含义参考:
http://www.3gyou.cc/?p=41
listen.allowed_clients = 127.0.0.1
#允许访问FastCGI进程的IP,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接
listen.owner = www
listen.group = www
listen.mode = 0666
#unix socket设置选项,如果使用tcp方式访问,这里注释即可。
user = www
group = www
#启动进程的帐户和组
pm = dynamic #对于专用服务器,pm可以设置为static。
#如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由下开参数决定:
pm.max_children #,子进程最大数
pm.start_servers #,启动时的进程数
pm.min_spare_servers #,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers #,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_requests = 1000
#设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 ’0′ 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
pm.status_path = /status
#FPM状态页面的网址. 如果没有设置, 则无法访问状态页面. 默认值: none. munin监控会使用到
ping.path = /ping
#FPM监控页面的ping网址. 如果没有设置, 则无法访问ping页面. 该页面用于外部检测FPM是否存活并且可以响应请求. 请注意必须以斜线开头 (/)。
ping.response = pong
#用于定义ping请求的返回相应. 返回为 HTTP 200 的 text/plain 格式文本. 默认值: pong.
request_terminate_timeout = 0
#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的’max_execution_time’因为某些特殊原因没有中止运行的脚本有用. 设置为 ’0′ 表示 ‘Off’.当经常出现502错误时可以尝试更改此选项。
request_slowlog_timeout = 10s
#当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 ’0′ 表示 ‘Off’
slowlog = log/$pool.log.slow
#慢请求的记录日志,配合request_slowlog_timeout使用
rlimit_files = 1024
#设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
rlimit_core = 0
#设置核心rlimit最大限制值. 可用值: ‘unlimited’ 、0或者正整数. 默认值: 系统定义值.
chroot =
#启动时的Chroot目录. 所定义的目录需要是绝对路径. 如果没有设置, 则chroot不被使用.
chdir =
#设置启动目录,启动时会自动Chdir到该目录. 所定义的目录需要是绝对路径. 默认值: 当前目录,或者/目录(chroot时)
catch_workers_output = yes
#重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null . 默认值: 空.
根据以上配置的解析,在php-fpm.conf文件中添加如下配置:
pm.max_children = 100
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 100
以观后效。
另附豆瓣技术贴:https://www.douban.com/note/315222037/
1、php-fpm优化参数介绍
他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。
pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。
在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。
下面4个参数的意思分别为:
pm.max_children:静态方式下开启的php-fpm进程数量
pm.start_servers:动态方式下的起始php-fpm进程数量
pm.min_spare_servers:动态方式下的最小php-fpm进程数
pm.max_spare_servers:动态方式下的最大php-fpm进程数量
区别:
如果dm设置为 static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,
然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数
2、服务器具体配置
对于我们的服务器,选择哪种执行方式比较好呢?事实上,跟Apache一样,运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。
这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。
对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。
因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到,比如8GB内存可以设置为100,
那么php-fpm耗费的内存就能控制在 2G-3G的样子。如果内存稍微小点,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。
这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。
对于小内存的服务器来说,比如256M内存的VPS,即使按照一个20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。
因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。或者使用动态方式,
因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。
比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比如服务器上只是部署php环境的话,比较合适的值在5~10之间。
本服务器配置
1、服务器基本信息:
硬盘:数据盘30G、系统盘20G
内存:1.5G
CPU:双核
系统:CentOS 6.3 64位
带宽:独享2M
2、部署的应用
Git、SVN、Apache、Tomcat、PHP、Nginx、mysql、JDK
3、优化后的参数
pm = dynamic
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
C. yum 安装lamp怎么升级php
centos6.5
1.yum安装和源代码编译在使用的时候没啥区别,但是安装的过程就大相径庭了,yum只需要3个命令就可以完成,源代码需要13个包,还得加压编译,步骤很麻烦,而且当做有时候会出错,源代码编译安装大概需要2个小时,好处在于可以自己配置地址等一些参数,yum安装半个小时搞定,一般不会出错,更新也很方便。
2.我的机器是centosrelease5.964为的系统,一般机器都带yum命令,并且yum包源都是可以用的,就是说不用你自己下载东西,直接yum-yinstall后面加上你所需要安装的软件,他会自动下载自动安装,非常方便。例如yum-yinstallhttpd自动下载并安装apache服务器。lamp环境只需要安装httpd,MySQL,PHP
3.首先更新一下yum-yupdate
4.用yum安装Apache,Mysql,PHP.
4.1安装Apache
yuminstallhttpdhttpd-devel
安装完成后,用/etc/init.d/httpdstart启动apache
设为开机启动:chkconfighttpdon
4.2安装mysql
yuminstallmysqlmysql-servermysql-devel
同样,完成后,用/etc/init.d/mysqldstart启动mysql
4.3设置mysql密码
mysql>;USEmysql;
mysql>;UPDATEuserSETPassword=PASSWORD('newpassword')WHEREuser='root';
mysql>;FLUSHPRIVILEGES;
设置mysql密码还可以用:mysql_secure_installation命令
4.4允许远程登录
mysql-uroot-p
EnterPassword:<yournewpassword>
mysql>GRANTALLPRIVILEGESON*.*TO'用户名'@'%'IDENTIFIEDBY'密码'WITHGRANTOPTION;
完成后就能用mysql-front远程管理mysql了。
设为开机启动
chkconfigmysqldon
5PHP5.4安装
rpm-Uvhhttp://mirror.webtatic.com/yum/el6/latest.rpm(下载最新的源)
yuminstallphp54wphp54w-bcmathphp54w-cliphp54w-commonphp54w-develphp54w-fpmphp54w-gdphp54w-imapphp54w-ldapphp54w-mbstringphp54w-mcryptphp54w-mysqlphp54w-odbcphp54w-pdophp54w-pearphp54w-pecl-igbinaryphp54w-xmlphp54w-xmlrpcphp54w-opcachephp54w-intlphp54w-pecl-memcache安装PHP对应的各种扩展;
使用yum安装就是各种方便,用源码安装试了十几次,各种bug无法解决
D. Centos php 扩展方式安装gd库的方法
网站的第二台服务器跑的的环境主要是Python/Ruby,有时也需要简单跑跑PHP脚本,所以也安装了PHP,环境是Nginx+php-fpm,PHP是源码编译安装的,所以是最小化安装,甚至连mysqli扩展都没有。今天需要用到GD库,才发现没GD库环境,所以需要安装这个扩展。对付单个扩展,单独编译动态加载是比较方便快捷的。安装过程也比较繁杂,这个记录一下,方便后来者。
首先说明,我的PHP是源码编译安装的,可以参看 以源码编译的方式安装PHP与php-fpm。
先安装 gd 前置库 : freetype ,jpegsrc,libpng。
1. freetype
复制代码
代码如下:
wget "http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2"
tar jxvf freetype-2.4.0.tar.bz2
cd freetype-2.4.0
./configure --prefix=/usr/local/freetype make make install
2. jpegsrc
复制代码
代码如下:
wget "http://www.ijg.org/files/jpegsrc.v9.tar.gz"
tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/jpeg make make install
mkdir -p /usr/local/jpeg/include
mkdir -p /usr/local/jpeg/lib
mkdir -p /usr/local/jpeg/bin
mkdir -p /usr/local/jpeg/man/man1
3. libpng
复制代码
代码如下:
wget "http://downloads.sourceforge.net/project/libpng/libpng12/1.2.50/libpng-1.2.50.tar.gz?r=http%3A%2F%2Fwww.libpng.org%2Fpub%2Fpng%2Flibpng.htmlts=1376631135use_mirror=nchc"
tar zxvf libpng-1.2.50.tar.gz
cd libpng-1.2.50
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/libpng make make install
接下来需要cd到php源码的 gd 目录,否则会报 cannot find config.m4 之类的错误。
复制代码
代码如下:
cd php-5.3.6
cd ext
cd gd
然后再这个目录执行命令 /usr/local/php/bin/phpize。什么时候需要用到 phpize 呢?当我们需要再加些模块,又不想重新编译php,这些我们就可以用phpize了。我的PHP安装在 /usr/local/php/ 这个目录里,可以根据个人情况修改。
复制代码
代码如下:
/usr/local/php/bin/phpize
现在可以进行单独编译安装了:
复制代码
代码如下:
./configure --with-php-configure=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
或者
./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
make make install
接着修改php.ini文件 在 ;extension=php_zip.dll 下面添加一行 extension=gd.so
重启 Nginx 之后再看看是否安装成功了。再执行 /usr/local/php/bin/php -m 查看gd模块是否加载成功。
复制代码
代码如下:
service nginx restart
/usr/local/php/bin/php -m
console列出:
复制代码
代码如下:
[root@nowamagic gd]# /usr/local/php/bin/php -m
[PHP Moles]
Core
ctype
date
dom
ereg
fileinfo
filter
gd
……
看到gd了,说明gd库安装成功。
接下来只要重启 php-fpm 即可:
复制代码
代码如下:
killall php-fpm
/usr/local/php/sbin/php-fpm
phpinfo()一下,看看。
OK,安装成功。
E. php下载安装教程(php安装包下载)
linuxyum安装php7.3先安装前面的教程,再安装后面的
参考教程1:
参考教程2:
安装PHP
1、安装PHP73
1.1、卸载旧版本PHP
yumremovephp*
1.2、安装EPEL:
sudoyuminstallepel-release
1.3、安装remi(选一个):
sudorpm-Uvh
rpm-Uvh
1.4、查看目前有php的什么版本(可忽略)
sudoyumlistphp*
1.5、列出所有的php相关的rpm包(可忽略)
rpm-qa|grepphp
1.6、删除php相关的rpm包(一次只能删除一个)(可忽略)
rpm-ephp72w-mysqlnd-7.2.17-1.w7.x86_64
1.7、列出remi仓库下所有PHP7.3可用模块。(可忽略)
yum--enablerepo=remi-php73searchphp|grepphp73
1.8、安装PHP7.3
yum--enablerepo=remi-php73installphp
1、安装PHP7.3:
(解决yum安装apache关联不了PHP的问题,用以下命令安装)
yum--enablerepo=remi-php73installphp
安装模块
yum--enablerepo=remi-php73installphp73-php-fpmphp73-php-cliphp73-php-bcmathphp73-php-gdphp73-php-jsonphp73-php-mbstringphp73-php-mcryptphp73-php-mysqlndphp73-php-opcachephp73-php-pdophp73-php-pecl-cryptophp73-php-pecl-mcryptphp73-php-pecl-geoipphp73-php-recodephp73-php-snmpphp73-php-soapphp73-php-xml
2、设置开机启动、运行服务:
systemctlenablephp73-php-fpm
systemctlstartphp73-php-fpm
3、查找php.ini位置:
find/etc/opt/remi/php73-namephp.ini
/etc/opt/remi/php73/php.ini
找到apache的配置文件:httpd.conf
sudofind/-namehttpd.conf
位置如下:
/etc/httpd/conf/httpd.conf
5、PHP日常操作
systemctlrestartphp73-php-fpm#重启
systemctlstartphp73-php-fpm#启动
systemctlstopphp73-php-fpm#关闭
systemctlstatusphp73-php-fpm#检查状态
php-m#查看PHP已安装拓展模块
php-v#查看PHP版本
mysql下载安装和PHP下载安装问题这几天在网上找了血关于MYSQL的教程.但怎么看都不行.希望高手远程教教我配了好多次,按这个顺序这种配置一般都没问题,不要觉得麻烦,细心一点15分钟就可以配好,有问题可以给我留言。
首先:Apache的安装配置(版本:apache_2.2.6-win32-x86-no_ssl)
直接按默认安装,安装时要关闭浏览器跟下载软件,否则安装完成后服务器不能启动,报不能绑定80端口的错误。启动后在地址栏中输入“”或“”,如果可以看到"ItWorks",说明安装成功。
如果需要更改默认路径,打开“C:.2conf”目录下的httpd.conf文件,查找“DocumentRoot(这里有两处都必须改,一处不是以此开头),将其路径修改成需要设置的访问路径,这里改为“D:/masterphp”(注意斜杠方向,与路径方向不同)。
第二:PHP的安装配置(版本:php-5.2.5-Win32)
下载后直接解压就可以了,这里我们解压到“C:ProgramFilesphp-5.2.5-Win32”目录下。下面将PHP和Apache服务期连接:
(1)修改“C:ProgramFilesphp-5.2.5-Win32”目录下"php.ini-recommened"文件名,改成"php.ini"
(2)将“php.ini”文件拷贝到Apache目录下,即“C:.2”目录下
(3)打开php.ini文件,修改以下几个关键字
查询extension_dir="./"修改为
extension_dir="C:ProgramFilesphp-5.2.5-Win32ext"
如果在显示中文的时候出现乱码,可以查询;default_charset="iso-8859-1"修改为default_charset="gbk",注意要去掉前面的“;”
很多时候需要利用session对象来存储数据,如session身份验证、设计购物车等,因此还必须要找到另外一个属性,即把
;session.save_path="/tmp"修改为
session.save_path="C:/ProgramFiles/php-5.2.5-Win32/session"
(session文件夹需手工创建,也可以创建其他的目录)
查找display_errors和cgi.force_redirect,原始设置为
display_errors=off
;cgi.force_redirect=1
修改为
display_errors=ON
cgi.force_redirect=0
(display_errors属性表示在运行时如果发生错误,是否会显示错误信息。而cgi.force_redirect为0表示强制不运行在CGI模式下)
再将"C:/ProgramFiles/php-5.2.5-Win32"下的php5ts.dll文件拷贝到系统的windows/system32(WindowsXP);接着将"C:/ProgramFiles/php-5.2.5-Win32"下的php5apache2_2.dll(这是Apache的版本号,如果是2.0版本的则复制php5apache2.dll)文件复制到"C:.2moles"下,然后将下面的一段代码插入到httpd.conf文件的最后
LoadMolephp5_molemoles/php5apache2_2.dll
AddTypeapplication/x-httpd-php.php
如果还想让Apache执行其他后缀名,则可添加其他的类型,如下所示
AddTypeapplication/x-httpd-php.php4
AddTypeapplication/x-httpd-php.php3
AddTypeapplication/x-httpd-php.phtml
AddTypeapplication/x-httpd-php-souce.phps
Apache默认的连接文件名为"index.html",即如果在地址栏中输入""和输入""显示结果一致,如果想增加其他的默认连接文件名,则在httpd.conf中找到"DirectoryIndex",原始设置如下:
DirectoryIndexindex.htmlindex.html.var
如果想支持default.php,则修改成如下格式:
DirectoryIndexdefault.phpindex.htmlindex.html.var
为了测试PHP配置是否成功,打开记事本输入以下代码:
?php
phpinfo()
?
将该代码保存成version.php,拷贝到"d:master.php"目录下,在地址栏输入"",如果一切配置正常,可以看到PHP的各种信息
第三:MySQL的安装配置(版本:mysql-5.0.45-win32)
选择完全安装,点下一步,其中有个密码要设置。
启动后若出现mysql标志,则表示安装成功。
MySQL安装成功后还需要同PHP连接上,因此,还需要进一步配置。
打开“C:.2”目录下php.ini文件,查找"MySQL",修改以下几个属性
原始设置为:
mysql.default_port=
mysql.default_host=
mysql.default_user=
mysql.default_password=
修改为:
mysql.default_port=3306(网络端口,安装时默认设置为3306)
mysql.default_host=localhost(default_host为服务期名称,localhost表示本地机器)
mysql.default_user=root(default_user表示用户名,root是默认的用户名)
mysql.default_password=123456(即安装MySQL时输入的密码)
修改了以上属性后,还需要启动PHP对MySQL支持模块,在php.ini文件中查找"extension=php_mysql.dll"
原始设置为:
;extension=php_mysql.dll
修改为
extension=php_mysql.dll(即把分号去掉)
再将php_mysql.dll(php)和libmysql.dll(php)文件拷贝至c:winntsystem32中。
最后测试MySQL是否安装成功,测试代码如下:
?php
$link=mysql_connect('localhost','root',');
if(!$link)echo"失败!";
elseecho"成功!";
mysql_close();
?
在地址栏输入"",如果连接成功,则会显示“成功!”
最后,把phpmyadmin解压到web站点内,直接输入回车即可进入。
怎么安装PHP环境?
LAMP/LNMP环境搭建
一.检查系统环境
1.确认centos版本
[root@localhost~]#cat/etc/redhat-release
2.检查是否安装过apache
rpm-qa|grephttpd
或者:
apachectl-v
或者:
httpd-v
3.检查是否安装过Mysql
servicemysqldstart
如果未被识别则没有安装
如果系统安装过,或者安装失败,清理一下系统
4.清理Mysql痕迹
yumremovemysql
rm-f/etc/my.cnf
5.卸载Apache包
rpm-qa|grephttpd
注意:如果是新的系统或者你从来没有尝试安装过,则以上步骤省略
二.安装Apache、PHP、Mysql
停止防火墙服务
[root@localhost~]#systemctlstopfirewalld.service
禁用防火墙开机启动服务
[root@localhost~]#systemctldisablefirewalld.service
1.安装apache
[root@localhost~]#yum-yinstallhttpd
2.安装php
[root@localhost~]#yum-yinstallphp
3.安装php-fpm
[root@localhost~]#yum-yinstallphp-fpm
4.安装Mysql
[root@localhost~]#yum-yinstallmysql
5.安装mysql-server
[root@localhost~]#yuminstallmariadb-server
CentOS7+版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了,entos7配置教程上,大多都是安装mariadb,因为centos7默认将mariadb视作mysql。
因为mysql被oracle收购后,原作者担心mysql闭源,所以又写了一个mariadb,这个数据库可以理解为mysql的分支。如果需要安装mariadb,只需通过yum就可。
6.安装php-mysql
[root@localhost~]#yum-yinstallphp-mysql
三.安装基本常用扩展包
1.安装Apache扩展包
yum-yinstallhttpd-manualmod_sslmod_perlmod_auth_mysql
2.安装PHP扩展包
yum-yinstallphp-gdphp-xmlphp-mbstringphp-ldapphp-pearphp-xmlrpcphp-devel
3.安装Mysql扩展包
yum-yinstallmysql-connector-odbcmysql-devellibdbi-dbd-mysql
四.配置Apache、mysql开机启动
重启Apache、mysql服务(注意这里和centos6有区别,Cenots7+不能使用6的方式)
systemctlstarthttpd.service#启动apache
systemctlstophttpd.service#停止apache
systemctlrestarthttpd.service#重启apache
systemctlenablehttpd.service#设置apache开机启动
重启数据库
#启动MariaDB
[root@localhost~]#systemctlstartmariadb.service
#停止MariaDB
[root@localhost~]#systemctlstopmariadb.service
#重启MariaDB
[root@localhost~]#systemctlrestartmariadb.service
#设置开机启动
[root@localhost~]#systemctlenablemariadb.service
五.配置Mysql
初次安装mysql是没有密码的,我们要设置密码,mysql的默认账户为root
方式1:设置MySQL数据root账户的密码:
[root@localhost~]#mysql_secure_installation
当出现如下提示时候直接按回车:
Entercurrentpasswordforroot
出现如下再次回车:
Setrootpassword?[Y/n]
出现如下提示输入你需要设置的密码,这里输入了root,输入密码是不显示的,回车后再输入一次确认:
Newpassword:
接下来还会有四个确认,分别是:
Removeanonymoususers?[Y/n]
Disallowrootloginremotely?[Y/n]
?[Y/n]
Reloadprivilegetablesnow?[Y/n]
直接回车即可。
方式2:进入mysqlmysql-r
修改mysql密码:setpasswordfor'root'@'localhost'=password('root');
mysql授权远程连接(navicat等):grantallon*.*torootidentifiedby'root'
六.测试环境
我们在浏览器地址栏输入,正常显示,说明我们的lamp环境搭建成功
七.安装nginx
yuminstallyum-priorities-y
wget
rpm-ivhnginx-release-centos-7-0.el7.ngx.noarch.rpm
yuminstallnginx
Nginx版本号可变更版本
八.配置nginx
1.nginx启动,停止,重启
systemctlstartnginx.service#启动nginx
systemctlstopnginx.service#停止
systemctlrestartnginx.service#重启
systemctlenablenginx.service#设置开机启动
更改nginx端口号(根据自己需求)
cd/etc/nginx/conf.d/
vimdefault.conf
把listen80改成listen81
3.访问即可看到nginx首页
安装完成访问时候需要启动php-fpm,不重启访问会出现下载文件,重启命令如下
systemctlstartphp-fpm.service#启动php-fpm
systemctlenablephp-fpm.service#设置开机启动
4.更改nginx配置文件识别php
vi/etc/nginx/conf.d/default.conf,把之前的#给去掉就可以了,顺手改一下
location~.php${
roothtml;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME/usr/share/nginx/html/$fastcgi_script_name;
includefastcgi_params;
}
方法二安装nginx
yuminstallnginx
启动nginx,并设置为开机启动
systemctlstartnginx
systemctlenablenginx
vim/etc/nginx/conf.d/default.conf
5.在/usr/share/nginx/html中新建一个test.php
访问即可看到php页面
修改完成配置记得启动apache和php-fpm哦!
九.负载配置
upstreamsite{
server172.16.170.138;
server172.16.170.139;
}
server{
listen80;
server_namelocalhost;
#charsetkoi8-r;
#access_log/var/log/nginx/log/host.access.logmain;
location/{
root/usr/share/nginx/html;
indexindex.htmlindex.htm;
proxy_pass;
}
apache默认目录/var/www/html
nginx默认目录/usr/share/nginx/html
升级php版本
centos7默认安装php是5.4
查看yum的可安装的php版本列表
yumprovidesphp
开始升级PHP更新源:
rpm-Uvh
rpm-Uvh
yumremovephp-common-y#移除系统自带的php-common
php72版本
yuminstall-yphp72wphp72w-opcachephp72w-xmlphp72w-mcryptphp72w-gdphp72w-develphp72w-mysqlphp72w-intlphp72w-mbstring
php56版本
yuminstall-yphp56wphp56w-opcachephp56w-xmlphp56w-mcryptphp56w-gdphp56w-develphp56w-mysqlphp56w-intlphp56w-mbstring#安装依赖包
查看php版本
php-v
安装phpfpm:
yuminstallphp72w-fpm
yumprovidesphp-fpm#因为我是准备搭建lnmp,所以安装php-fpm,这里会提示多个安装源,选择5.6版本的安装就可以了
yuminstallphp56w-fpm-5.6.31-1.w7.x86_64-y
systemctlstartphp-fpm.service【启动】
sys