Centos6.X下安装php nginx mysql 环境

时间:2023-03-08 17:26:14
---------------------------------------更换163软件源,此步可以省略,记得把repo文件里面的6.5改成当前版本号
yum makecache && yum -y update
---------------------------------------配置防火墙,开启80端口、3306端口
备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,
正确的应该是添加到默认的22端口这条规则的下面
vi /etc/sysconfig/iptables
-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 9000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
---------------------------------------关闭SELINUX
vi /etc/selinux/config
-----------------------------------
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加这一行
------------------------------#重启系统
reboot
---------------------------------------依赖组件
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre-devel zlib-devel gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel freetype-devel bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* unzip vim
---------------------------------------安装pcre,默认gz文件包位置:/usr/local/src
cd /usr/local/src
=========================上传文件
mkdir /usr/local/pcre && tar zxvf pcre-8.35.tar.gz && cd pcre-8.35 && ./configure --prefix=/usr/local/pcre && make && make install && cd ../
---------------------------------------安装mysql
groupadd mysql && useradd -g mysql mysql -s /bin/false && mkdir -p /home/mysqldata && chown -R mysql:mysql /home/mysqldata && mkdir -p /usr/local/mysql && cd /usr/local/src && tar zxvf mysql-5.1.56.tar.gz && cd mysql-5.1.56
./configure --prefix=/usr/local/mysql --localstatedir=/home/mysqldata --enable-assembler --enable-static --with-mysqld-user=mysql --with-big-tables --enable-thread-safe-client --enable-local-infile --with-charset-utf8 --with-extra-charsets=all && make && make install
cp ./support-files/my-huge.cnf /etc/my.cnf
vim /etc/my.cnf
=============在[mysqld]中增加下面一行
datadir = /home/mysqldata
=============
./scripts/mysql_install_db --user=mysql
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld chkconfig mysqld on
vim /etc/rc.d/init.d/mysqld
============================下面两个参数,等号后面是空,把后面的添加进去
basedir = /usr/local/mysql
datadir = /home/mysqldata
============================
service mysqld start
vim /etc/profile
=====================================================在export之后增加下面这一行
export PATH=$PATH:/usr/local/mysql/bin
=====================================================
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
---------------------------------------安装 nginx
cd /usr/local/src
groupadd www && useradd -g www www -s /bin/false && mkdir -p /usr/local/nginx && tar zxvf nginx-1.7.3.tar.gz && cd nginx-1.7.3 && ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.35
make && make install
vim /etc/rc.d/init.d/nginx
=======================================================这个文件是新建的,完整输入下面的内容
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/usr/local/nginx/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
}
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;; status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
=======================================================
:x!保存退出
chmod 775 /etc/rc.d/init.d/nginx
chkconfig nginx on
service nginx restart
===========================上面这一步执行完之后,就可以在浏览器里面输入虚拟机的ip地址访问了
---------------------------------------php组件支持软件安装
cd /usr/local/src && tar -zxvf libiconv-1.13.1.tar.gz && cd libiconv-1.13.1/ && ./configure --prefix=/usr/local && make && make install && cd ../ tar -zxvf libmcrypt-2.5.7.tar.gz && cd libmcrypt-2.5.7/ && ./configure && make && make install && /sbin/ldconfig && cd libltdl/ && ./configure --enable-ltdl-install && make && make install && cd ../../ tar -zxvf mhash-0.9.9.9.tar.gz && cd mhash-0.9.9.9/ && ./configure && make && make install && cd ../ ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config tar -zxvf mcrypt-2.6.8.tar.gz &&cd mcrypt-2.6.8/ && /sbin/ldconfig && ./configure && make && make install && cd ../ cd /usr/local/src && tar -zvxf php-5.3.10.tar.gz && cd php-5.3.10 && mkdir -p /usr/local/php
---------------------------------------x64库文件支持,x64才需要执行下面这一行
cp -frp /usr/lib64/libldap* /usr/lib/
---------------------------------------nginx
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-iconv-dir=/usr/local/ --with-freetype-dir --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-jpeg-dir --with-png-dir --with-zlib --with-mhash --enable-sockets --enable-ftp --with-libxml-dir --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --enable-fpm --with-xmlrpc --enable-zip --enable-soap --without-pear
---------------------------------------
make ZEND_EXTRA_LIBS='-liconv'
make install cp php.ini-production /usr/local/php/etc/php.ini
ln -s /usr/local/php/etc/php.ini /etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
vim /usr/local/php/etc/php-fpm.conf
======================================下面的前面五行是增加,后面两行是前面参数在,后面的加上www,最后一排好像是把前面的分号去掉就可以了
[global]
pid = run/php-fpm.pid [www]
pm.max_children = 64
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 1024 user = www
group = www
============================= cp /usr/local/src/php-5.3.10/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig php-fpm on
vim /usr/local/php/etc/php.ini
=============================================php.ini文件用默认的也可以,这里面的有引起配置有问题
找到:;open_basedir =
修改为:open_basedir = .:/tmp/ #防止php木马跨站,重要!!========这一句好像有问题
找到:disable_functions =
修改为: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
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = OFF #禁止显示php版本的信息
找到:display_errors = On
修改为:display_errors = OFF #关闭错误提示
==============================================================================
---------------------------------------配置nginx支持php
vim /usr/local/nginx/conf/nginx.conf
===========================================这里面的配置注意找一下,有的是增加后面的值,有的是去掉分号就可以了
user www www;
=========================================http{}这一个节点的大括号里面添加这个
autoindex on; #开启nginx目录浏览功能
autoindex_exact_size off; #文件大小从KB开始显示
autoindex_localtime on; #显示文件修改时间为服务器本地时间 其中server段增加如下配置:
# 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 /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
其中 location /{} 中 index index.html index.htm 改为
index index.php index.html index.htm;
===========================================
到这一步就算完成了,下面的是配置zend加密以及多域名绑定的
==================pdo-mysql支持20140716
cd /usr/local/src && tar zxvf pdo_mysql-1.0.2.tgz && cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make && make install
vim /usr/local/php/etc/php.ini
==========================找到extension=php-mysql.dll后面添加一行
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/pdo_mysql.so"
---------------------------------------配置php支持Zend Guard
安装Zend Guard
cd /usr/local/src && mkdir /usr/local/zend
tar xvfz ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz
tar xvfz ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
cp ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/zend/ ##64位
cp ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/ZendGuardLoader.so /usr/local/zend/ ##32位
vim + /usr/local/php/etc/php.ini##最后一行的下面添加
====================================================
[Zend Guard]
zend_extension=/usr/local/zend/ZendGuardLoader.so
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
============================================
---------------------------------------
mkdir -p /home/www/vhosts/ && mkdir -p /home/www/html/ && chown -R www:www /home/www/vhosts/ && chown www.www /home/www/html/ -R && chmod 700 /home/www/html/ -R
---------------------------------------测试及相关组件参数
cd /usr/local/nginx/html/ #进入nginx默认网站根目录
vim index.php #新建index.php文件
====================
<?php
phpinfo();
?>
======================完成后重启才能有效=====================
http://192.168.9.8/index.php
#############################################################################
---------------------------------------多域名支持
vim /usr/local/nginx/conf/nginx.conf
==========================================
include /home/www/vhosts/*.conf;
==========================================
CREATE USER chy@localhost IDENTIFIED BY '123456';
grant all on qyoa.* to chy@localhost;
grant alter,create,delete,drop,index,insert,select,update on qyoa.* to chy@localhost;
========================================== 1.2.2 设置mysql密码
mysql>; USE mysql;
mysql>; UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql>; FLUSH PRIVILEGES;
1.2.3 允许远程登录
mysql -u root -p
Enter Password: <your new password>
mysql>GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
完成后就能用mysql-front远程管理mysql了。 ============================第二种yum安装方法============================
CentOS下yum安装LAMP 1. 用yum安装Apache,Mysql,PHP.
1.1安装Apache
yum install httpd httpd-devel
安装完成后,用/etc/init.d/httpd start 启动apache
设为开机启动:chkconfig httpd on
1.2 安装mysql
1.2.1 yum install mysql mysql-server mysql-devel
同样,完成后,用/etc/init.d/mysqld start 启动mysql
1.2.2 设置mysql密码
mysql>; USE mysql;
mysql>; UPDATE user SET Password=PASSWORD('newpassword') WHERE user='root';
mysql>; FLUSH PRIVILEGES;
1.2.3 允许远程登录
mysql -u root -p
Enter Password: <your new password>
mysql>GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
完成后就能用mysql-front远程管理mysql了。
1.2.4 设为开机启动
chkconfig mysqld on
2. 安装php
yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml
/etc/init.d/httpd start
3. 测试一下
3.1在/var/www/html/新建个test.php文件,将以下内容写入,然后保存。
<?
phpinfo();
?>
3.2 防火墙配置
a.添加.允许访问端口{21: ftp, 80: http}.
iptables -I RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
iptables -I RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
b.关闭防火墙{不推荐}.
service iptables stop
c.重置加载防火墙
service iptables restart
3.3然后在客户端浏览器里打开http://serverip/test.php,若能成功显示,则表示安装成功。
至此,安装完毕。感慨,yum真是太好用了。
CentOS 打开防火墙80端口 注意:有时安装好可能无法访问,需要打开80端口
很大的原因是防火墙:
通过/etc/init.d/iptables status命令查询是否有打开80端口,如果没有可通过两种方式处理:
1.修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
2.关闭防火墙
/etc/init.d/iptables stop
#start 开启
#restart 重启
永久性关闭防火墙chkconfig --level 35 iptables off

  环境包下载地址: http://pan.baidu.com/s/1i3XTcoP