Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记
Linux下配LMAP环境,花了我好几天的时间。之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程中出现了一些错误,经过好几次安装,翻了好多资料,最后找出问题的所在,才把环境搭建好,对于高手来说,这或许不算什么,但对于一个刚入门的新人,却是不一样了,这篇文章记录着我的一些笔记,希望对于那些刚刚入门的人们有所帮助,仅作为参考。
安装首先我们得获得MySQL,Apache,PHP,WordPress的源码包,软件的官网如下:
MySQL: http://www.mysql.com
Apache: http://www.apache.org
PHP: http://www.php.net
WordPress: http://cn.wordpress.org
下载的方式有几种,你可以从电脑上下载,然后传到linux上。
在电脑上下可能有些朋友不知道怎么传到linux上,我使用的是一个远程登录软件Xshell 4,传输工具是Xftp 4。
注:免费软件 Xshell 和 Xftp 都是 NetSarang 出品的优秀网络管理、安全传输工具。Xshell 是一个免费的安全终端仿真器,可以作为 SSH、TELNET 或 RLOGIN 的终端模拟,能够从 Windows 平台安全连接 Linux 服务器,Xftp 则是安全传输客户端,支持 FTP 和 SFTP 协议,两者都支持标签化的会话窗口。这两者基本是都是配套存在的。
也可以从linux上下载:
使用wget url 这个指令,把源码包下载到linux下解压缩安装,如
sudo wget http://cn.wordpress.org/wordpress-3.5.1-zh_CN.tar.gz
sudo tar zxvf wordpress-3.5.1-zh_CN.tar.gz
因为我使用的系统是ubuntu的,普通用户需要有root执行权限的需要在前面加“sudo”,这是unbuntu的一个特色,其他的系统版本的可以不加。
下面开始安装:
安装MySQL
我安装的版本是mysql-5.0.95,在官网上一时找不到自己想要版本的朋友,可以从这个链接里找:ftp://mirror.csclub.uwaterloo.ca/mysql/Downloads/MySQL-5.0
安装之前为了尽量避免出错,我们现在安装几个需要的东西,gcc,g++, ncurses
缺少gcc,g++编译器会出现:
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
解决办法:sudo apt-get install build-essential或者
sudo apt-get install gcc
sudo apt-get install gcc-c++
如果系统是suselinux的朋友可以: zypper install gcc zypper install gcc-c++
其他版本系统的执行: yum install gcc yum install gcc-c++
缺少ncurses,MySQL的库文件会出现:
checking for termcap functions library... configure: error: No curses/termcap library found
解决办法:sudo apt-get install libncurses5-dev
步骤:
sudo wget ftp://mirror.csclub.uwaterloo.ca/mysql/Downloads/MySQL-5.0/mysql-5.0.95.tar.gz
sudo tar zxvf mysql-5.0.95.tar.gz
cd mysql-5.0.95
sudo ./configure --prefix=/usr/local/mysql --with-extra-charsets=all //检测环境,指定安装目录
注:检测出缺少什么就安装什么,然后再重新编译
(这里--prefix=是这mysql的安装目录,--with-extra-charsets选项则是指定了MySQL可以支持的语言编码,这里设置为全部支持,具体使用哪种编码,可以在程序中指定。
另外还有再编译时候按个人需要来增加的一些参数:
--sysconfdir=/usr/local/etc
--libexecdir=/usr/local/sbin
--localstatedir=/var/lib/mysql
--enable-assembler
--with-charset=utf8
--with-collation=utf8_general_ci
--with-extra-charsets=gbk,gb2312,binary
--enable-thread-safe-client
--enable-local-infile
--with-pthread
--with-plugin-innobase
--without-bench
--without-readline
--with-mysqld-ldflags="-all-static -ltcmalloc"
--with-client-ldflags=-all-static
)
sudo make //编译
sudo make install //安装
添加用户,用户组并设置权限:
groupadd mysql //如果有了可以不执行
useradd -g mysql mysql //如果有了可以不执行
sudo cp support-files/my-medium.cnf /etc/my.cnf
sudo cp support-files/mysql.server /etc/init.d/mysqld
sudo cd /usr/local/mysql
sudo chown -R root . // 后面有小点
sudo chown -R mysql var
sudo chgrp -R mysql . //后面有小点
sudo chmod +x /etc/init.d/mysqld
sudo chkconfig --add mysqld
sudo chkconfig --level 3 mysqld on
sudo bin/mysql_install_db --user=mysql
sudo bin/mysqld_safe --user=mysql &
启动MySQL:
- sudo service mysql start
- 进入MySQL安装目录下,/usr/local/mysql
sudo ./bin/mysql –u root
注:第一安装默认密码Passwrod为空,如果有密码的则加上密码,./bin/mysql –u root –p123456
netstat –lt 可以查看各个进程,看MySQL是否启动
#更换 MYSQL root用户密码
sudo /usr/local/mysql/bin/mysqladmin –u root password 'yourpassword'
还有一点需要说明,MySQL服务默认只允许从服务器本机连接,如果需要从远程连接,还需要在MySQL中设置相应的权限,并更新权限表,具体操作如下:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
mysql> flush privileges;
(注意前面的“mysql>”,这个操作是连接到MySQL服务后,在MySQL中进行的,而不是在操作系统中进行的)
(注:上面这个更改权限的例子,是使得可以从任意一台远程终端使用root用户连接MySQL服务器,用户应根据自己的实际需要进行设置)
安装Apache
安装的大体步骤跟MySQL差不多,我使用的源码包是httpd-2.2.9.tar.gz
从官网下载得到源码包后:
sudo tar zxvf httpd-2.2.9.tar.gz
cd httpd-2.2.9.tar.gz
sudo ./configure --prefix=/usr/local/apache --with-enable=so --enable-rewrite --enable-static-support
(注:apache编译起来较容易,关键是在配置httpd.conf)
sudo make
sudo make install
cd /usr/local/apache
sudo ./bin/apachectl start
服务器启动后可以在浏览器中输入:http://ip,如果看到“It’ works!”说明安装成功!
Apache默认的web根目录为Apache安装目录下的htdocs目录,如果希望指定到其他目录,可以通过修改Apahce的配置文件实现,操作如下:
cd /usr/local/apahce/conf
sudo vi httpd.conf
找到“DocumentRoot "/usr/local/apache/htdocs"”,将"/usr/local/apache/htdocs"部分修改为希望使用的目录,此外,还需要找到 “<Directory "/usr/local/apache/htdocs">”,同样将"/usr/local/apache/htdocs"修改为希望使用的目录(比如:/var/www),保存退出。
这里需要注意,要修改默认的web根目录,需要同时修改这两项设置,只修改其中一个是无效的。
如果,你这两样都配置完后,你访问浏览器时出现:Forbidden You don't have permission to access / on this server.
那说明你的权限还是不够。
网上有许多文章介绍说,将
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
它之间Deny from all修改为Allow from all,这是相当不负责任的说法,如果你这么做了,更对不起自己,这是禁止apache对根目录“/”以下所有内容禁止访问的设定,也是网站安全设置中最基本的设置,只开通对应网站根目录的权限就可以了,如果将整个服务器的根目录都开放,一但有人试图上传一段可执行代码在不应该出现的目录里,后果不堪设想....
我们可以设置目录权限,让你的目录树都有执行权限,可以设置755
sudo chmod 755 /var/www
如果依然无法访问的
chcon -R -t httpd_sys_content_t /var/www
修改完成后,需要重启apahce服务,才能使新的配置生效,操作如下:
cd /usr/local/apache/bin
sudo ./apachectl restart
如果出现端口被占用而无法重启的,可以使用ps -ef | grep httpd查看PID
然后kill –l PID
也可以杀死同一组内的所有进程 killall httpd 然后再启动
安装PHP
安装PHP时也需要注意几个,安装前先安装几个需要的东东,libxml2-dev
sudo apt-get install libxml2-dev
可能需要的有
freetype-2.4.4.tar.gz
gd-2.0.35.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.5.4.tar.gz
libtool-1.5.26.tar.gz
zlib-1.2.3.tar.gz
根据检测需要的再安装
下载 php-5.2.6.tar.gz
sudo tar zxvf php-5.2.6.tar.gz
cd php-5.2.6
sudo ./configure --prefix=/usr/local/php --with-xml --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysql-sock=/tmp/mysql.sock
完成后将会看到“Thank you for using PHP.”的字样,表明PHP已经配置成功了。
sudo make
sudo make test //有的说make test可以不用
sudo make install
安装完PHP后,还需要手动修改一下Apache的配置,以便使Apache支持PHP,操作如下:
cd /usr/local/apache/conf
sudo vi httpd.conf
找到“AddType application”部分,在后面添加如下内容:
AddType application/x-httpd-php .php .php3 php5
AddType application/x-httpd-php-source .phps
(如果需要添加默认php索引文件名的支持,则需要找到“DirectoryIndex index.html ”,修改为“DirectoryIndex index.html index.php”),修改完成后保存退出。
此外,不要忘了将PHP安装目录中的php.ini-recommended文件拷贝到编译时指定的PHP配置文件目录/usr/local/php/etc下,在PHP源码包目录“php-5.2.6”中操作如下:
sudo cp php.ini-recommended /opt/php/etc/php.ini
注:php.ini-recommended是5.2版本中有,如果是5.3或者更高版本的,由于版本更新,这些文件有了新的命名:
php.ini-production对应于php.ini-recommended
php.ini-development对应于php.ini-dist
全部配置完成后,不要忘了重启apache,以便使新的配置生效。
为确认PHP安装是否成功,可以在web的根目录下(DocumentRoot的路径)创建一个index.php文件
sudo vi index.php
写入
<html>
<head><title>testphp</title></head>
<body>
<?php
phpinfo();
?>
</body>
</html>
保存退出,在浏览器中输入:http://ip/index.php,如果配置正确,就能看到刚刚配置好的服务器的相关信息,其中包括 Apache、MySQL以及PHP的版本、安装路径、配置情况等。如果看到的只是“phpinfo();”字样,说明apache没能正确支持PHP,请检查上述的配置过程是否都已经正确完成
安装WordPress
wordpress下载解压后只要把wordpress文件下的所有东西复制到解DocumentRoot下,再配置些信息就可以(不是复制wordpress目录,是下面的所有东西)
在配置前,先建立好数据库,
cd /usr/local/mysql
sudo ./bin/mysql –u root p123456
建立wordpress数据库
mysql> create database wordpress;
建立wordpress用户,密码为123
mysql> grant all on wordpress.* to wordpress@’%’ identified by '123';
mysql>flush privileges;
sudo wget http://cn.wordpress.org/wordpress-3.5.1-zh_CN.tar.gz
sudo tar zxvf wordpress-3.5.1-zh_CN.tar.gz
cd wordpress
sudo mv wp-config-sample.php wp-config.php
sudo vi wp-config.php
输入数据库信息:
define('DB_NAME', 'wordpress'); // 数据库名称
define('DB_USER', 'wordpress'); // 用户名字
define('DB_PASSWORD', '123'); // 用户密码
define('DB_HOST', 'localhost'); // 访问的地址IP,根据你服务器IP来定
保存退出,然后测试,在浏览器中输入服务器的ip地址访问即可。
关于MySQL+Apache+PHP+WordPress的环境配置基本上已经完成,安装过程中可能因为大家的版本和环境不同而出现点差异,大家再参考点资料应该没有什么问题。