原文:php_linux_centos6.4_安装mysql_apache_php
原文 :
http://blog.csdn.net/xiaoliouc/article/details/17639503
对一些报错,自己做了补充
最近用php做的项目到了项目部署的时候,服务器为centos6.4系统,为了快捷部署,采用yum安装部署
大部分内容参考博客 http://blog.sina.com.cn/s/blog_c02ed6590101d2sl.html
一、安装 MySQL
首先来进行 MySQL 的安装。打开超级终端,输入:
[root@localhost ~]# yum install mysql mysql-server
安装完毕,让 MySQL 能够随系统自动启动:
[root@localhost ~]# chkconfig --levels 235 mysqld on
[root@localhost ~]# /etc/init.d/mysqld start
设置 MySQL 数据 root 账户的密码:
[root@localhost ~]# mysql_secure_installation
当出现如下提示时候直接按回车:
Enter current password for root
出现如下再次回车:
Set root password? [Y/n]
出现如下提示输入你需要设置的密码,回车后在输入一次确认:
New password:
接下来还会有四个确认,分别是:
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
直接回车即可。
二、安装 Apache 组件
由于 CentOS 已经封装了 Apache,直接运行安装:
[root@localhost ~]# yum install httpd
同样配置系统让 Apache 随系统启动:
[root@localhost ~]# chkconfig --levels 235 httpd on
配置完毕,启动 Apache:
[root@localhost ~]# /etc/init.d/httpd start
此时已经可以访问你的服务器,不出意外的话,能够看到 “Apache 2 Test Page powered by CentOS” 的测试页面。注意,如果其他机器访问这台服务无法显示这个页面,而直接在这台服务器上可以访问的话,一般情况下是 CentOS 自带的防火墙禁止了。你只需要进入防火墙,将 “WWW” 对应的 “80” 端口打开即可。
注意:在 CentOS 中 Apache 的默认根目录是 /var/www/html,配置文件 /etc/httpd/conf/httpd.conf。其他配置存储在 /etc/httpd/conf.d/ 目录。
【如果出现报错 Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using】
1)进入apache的安装目录:(视个人安装情况而不同) [root@server ~]# cd /etc/httpd/conf2)编辑httpd.conf文件,搜索"#ServerName",添加ServerName localhost:80 [root@server conf]# ls extra httpd.conf magic mime.types original [root@server conf]# vi httpd.conf #ServerName www.example.com:80 ServerName localhost:80 3)再重新启动apache 即可。 [root@server ~]# /etc/init.d/httpd restart
localhost可以写成外网,不然只能内部访问
【测试内部访问 curl localhost】
如果防火墙拦截,外网访问不了,比如输入 vip.test.com [前边儿ServerName配置的是 ServerNamevip.test.com:80】
CentOS 防火墙开启80端口 网上搜索了很多都没解决问题,下面是正确方法: #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT 然后保存: #/etc/rc.d/init.d/iptables save
端口查看方法:
[root@vcentos ~]# /etc/init.d/iptables status
]
三、安装 PHP
输入如下指令安装 PHP:
[root@localhost ~]# yum install php
需要重新启动 Apache 服务:
[root@localhost ~]# /etc/init.d/httpd restart
四、测试 PHP 相关信息
这步实际上可以省略,但是为了测试是否安装成功,你可以新建一个 PHP 页面进行测试,使用 vim 编辑器新建:
[root@localhost ~]# vi /var/www/html/info.php
按 “i” 键进行编辑,输入:
<?php
phpinfo();
?>
编辑完毕,按 “ESC” 键退出编辑模式,接着输入:
:wq
然后回车,即保存并退出。
此时你可以访问你的站点地址,例如 “http://192.168.1.2/info.php”,查看是否能看到相关的 PHP 信息。
五、将 PHP 模块和 MySQL 模块关联起来
还需要将 PHP 和 MySQL 关联起来,才能正常工作。搜索模块:
[root@localhost ~]# yum search php
安装相关模块:
[root@localhost ~]# yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
需要重启 Apache 模块才能生效:
[root@localhost ~]# /etc/init.d/httpd restart
再次刷新刚才建立的 “info.php” 页面,往下拉找到相关 MySQL 模块,看是否检测到相关信息
问题1:为了让其他电脑访问,简单的方法是关闭防火前,不推荐 使用命令 /etc/rc.d/init.d/iptables stop
合理的方法是使用iptables规则,如下
关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。
下面是命令实现:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
再用命令 iptables -L -n 查看 是否设置好, 好看到全部 DROP 了
这样的设置好了,我们只是临时的, 重启服务器还是会恢复原来没有设置的状态
还要使用 service iptables save 进行保存
看到信息 firewall rules 防火墙的规则 其实就是保存在 /etc/sysconfig/iptables
可以打开文件查看 vi /etc/sysconfig/iptables
参考博客 http://hi.baidu.com/beijiqieys/item/5ee9bbcf94f0a712b67a24cf
问题2:yum安装的mysql版本为5.1.7,默认latin字符,需要修改为utf-8。vi /etc/my.cnf文件,添加default-character-set=utf8,如下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set=utf8
问题3:项目使用了mb_substr函数以及soap协议,php默认没安装,yum install php-mbstring 以及 yum install php-soap,重启apache,/etc/init.d/httpd restart
问题4:默认apache指向/var/www/html目录,如果我要指向 /var/www/html/project ,修改httpd.conf
vi /etc/httpd/conf/httpd.conf 命令,查找/var/www/html改为/var/www/html/project,重启apache服务即可,/etc/init.d/httpd restart
问题5:项目必须有读写权限
使用chmod -R **命令
修改发布路径 报错
【
Stopping httpd: [ OK ]
Starting httpd: Warning: DocumentRoot [/home/chenpenghui/web/web-6s] does not exist
】
当然也可以去禁止掉SELinux。
/usr/sbin/setenforce 0 立刻关闭 SELINUX
/usr/sbin/setenforce 1 立刻启用 SELINUX