首先:第一种安装配置的方法
1、MySQL的安装
MySQL安装涉及到的软件包:
mysql: MySQL客户端以及基础库文件。
mysql-libs: MySQL客户端所必需的库文件。
mysql-server: MySQL服务器端以及相关文件。
安装命令:
yum install mysql mysql-libs mysql-server
2、PHP的安装
预备工作:
同样需要预先安装EPEL软件。这里不安装也不影响此部分,但是在以后的一些教程中可能会安装一些不在标准软件源中提供的软件,所以在此给出安装命令。
安装命令:
wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm
PHP安装涉及软件包:
php.x86_64 : 服务器端PHP程序
php-cli.x86_64 : PHP的命令行工具
php-common.x86_64 : PHP的公用文件
php-fpm.x86_64 : PHP的Fastcgi进程管理模块。主要用于配置Nginx中,如果配置为Apache则可不装字模块
php-gd.x86_64 : PHP的GD库,主要用于图像处理
php-imap.x86_64 : PHP的IMAP模块
php-ldap.x86_64 : PHP的LADP模块
php-mbstring.x86_64 : PHP的多字节字符处理模块
php-snmp.x86_64 : PHP的SNMP协议模块
php-xml.x86_64 : PHP的XML模块
php-zts.x86_64 : PHP的线程安全模块。这个是用于Apache的,工作于Apache的Worker模式下。在此列出来仅为讨论子模块用途,具体效果未知,安装命令中也不会进行安装。希望有了解的人可以发信息个我讨论一下此模块的与Apache的工作效果。不过Centos中既然提供了此模块,相信其稳定性还是通过了验证的。
安装命令:
yum install php php-cli php-common php-fpm php-gd php-imap php-ldap php-mbstring php-snmp php-xml
3、Apache的安装
我购置的服务器默认已安装,无需再次安装
如果需要安装的话,命令是:
yum install httpd
4、启动服务
service mysqld start service httpd start
第二种安装配置的方法
1、Apache 配置
—————————————————–
vi /etc/httpd/conf/httpd.conf 编辑文件
Options Indexes FollowSymLinks
在331行 修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI)
#AddHandler cgi-script .cgi
在796行 修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)
AllowOverride None
在338行 修改为:AllowOverride All (允许.htaccess)
AddDefaultCharset UTF-8
在759行 修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码)
Options Indexes MultiViews
找到这一行,将“Indexes”删除 ,变为此状态 Options MultiViews (不在浏览器上显示树状目录结构)
DirectoryIndex index.html index.html.var
在 402行 修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var (设置默认首页文件,增加index.php)
KeepAlive Off
在76行 修改为:KeepAlive On (允许程序性联机)
MaxKeepAliveRequests 100
在83行 修改为:MaxKeepAliveRequests 1000 (增加同时连接数)
:wq! #保存退出
/etc/init.d/httpd restart 重启
DocumentRoot “/var/www/html” 修改为你的目录 “/data0/www/xxxxxxxxx” (这个目录就是挂载的数据盘)
rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页
Apache的日志文件
ErrorLog /etc/httpd/logs/error_log (php的错误日志也输出到这里)
CustomLog /etc/httpd/logs/access_log combined
2、PHP 配置
—————————————————–
vi /etc/php.ini #编辑
date.timezone = PRC #在946行 把前面的分号去掉,改为date.timezone = PRC
magic_quotes_gpc = On #在745行 打开magic_quotes_gpc来防止SQL注入 (php5.4开始不支持magic_quotes_gpc(防SQL流入))
log_errors = On #记录错误日志
:wq! #保存退出
/etc/init.d/httpd restart #重启Apche , php
3、挂载数据盘
—————————————————–
阿里云服务器的硬盘由两块组成,一块是系统盘,一块是数据盘,默认数据盘是没有挂载的,如果要用到数据盘就需要自己手动挂载。
通过命令fdisk -l,可以看到设备名为/dev/xvdb。
另外在挂载前要对硬盘(/dev/xvdb)分区和格式化。
分区使用命令fdisk,格式化命令为mkfs.ext3。
如何操作可以参照官方文档:Linux 系统挂载数据盘 。
数据盘最多可以挂4块,挂在/data0,以后其它的可以挂在/data1,/data2,/data3
数据盘的作用,阿里云服务器控制台提供“重置”功能,可选重置系统盘,还是数据盘,如何操作系统坏了,你可以只重置系统盘,保留网站数据在数据盘。
4、配置MySQL数据库
设置初始密码,建库,建表,导入数据
—————————————————–
请看这里:MySQL备份与恢复,远程访问MySql服务器
然后把mysql的数据文件,移动到“数据盘”上,防止系统坏了重做系统时数据没有了。
—————————————————–
我再移mysql的数据文件后,使用mysql -u用户名 -p 登录时,遇到了错误 :ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
主要是修改my.cnf文件时有几步与上文不一样,这里说明一下。操作方法如下 :
1)、停止mysql进程
2)、把/var/lib/mysql整个目录移到/data0/db
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/data0/db/mysql下
3)、修改my.cnf配置文件
不要直接使用/etc/my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个(我是my-medium.cnf)到/etc/并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
4)、编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
#socket = /var/lib/mysql/mysql.sock #注释了
socket=/data0/db/mysql/mysql.sock #新加的内容
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock #注释了
datadir=/data0/db/mysql #新加的内容
socket=/data0/db/mysql/mysql.sock #新加的内容
5)、MySQL启动脚本/etc/rc.d/init.d/mysqld 不用做任何修改
6)、重新启动MySQL服务
/etc/rc.d/init.d/mysqld start
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
移动完MySql之后,PHP连接不上Mysql数据库了
—————————————————–
经过上面的的操作,把MySql的数据文件移到其它目录后,PHP连接不上MySql数据库了,是因为找不mysql.sock文件。
解决方法一:
建一个软连接
cd /var/lib
mkdir mysql
ln -s /data0/db/mysql/mysql.sock /var/lib/mysql/mysql.sock
解决方案二:
修改/etc/php.ini文件
找到 mysql.default_socket = 一行,这个值一开始是空的,php将会使用内建在mysql中的默认值。
修改为以下内容:
mysql.default_socket = /data0/db/mysql/mysql.sock
mysql.sock的文件位置请跟据你的实际情况填写。
还有一处mysqli.default_socket =,要不要修改视情况吧,我没有修改。