LAMP试安装1

1.安装httpd(安装到/opt/httpd2_2_24)

启动httpd

然后打开浏览器,访问http://serverip,如果页面出现“It works!”,说明安装成功

说明:此处configure的两个选项是指:1-允许模块动态配置,2-允许重写重配置。但是建议还是参考configure的--help选项,例如我在ubuntu上迁移LAMP环境时,就遇到找不到apr(Apache Portable Runtime Library)的情况,还需要指定--with-apr=/usr/local/arp的选项。所以除非是一直在深入学习apache的人,不太可能会了解到所有的选项和作用,我也只是参考着来试试传说中的LAMP,顺便弄个wordpress做测试而已。

 

2.安装mysql(将mysql文件解压到/opt/mysql6_0_11)

解压后的mysql包里面自带有一个INSTALL-BINARY文档,里面描述了怎么安装mysql,如下

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &

这里只稍微改动一下解压的目录(full-path-to-mysql-VERSION-OS)为/opt/mysql6_0_11,其余都按照mysql给出的步骤进行

说明:mysql的安装相对来说是比较简单的,使用mysql_install_db安装后,默认的数据库文件基本上都会配置好,但是在启动的时候,遇到的问题会比较多,在后面附录里会详细记录本次安装遇到的所有问题。并且在mysql安装时对于用户和权限的配置,是一个需要再了解的地方

 

3.安装PHP

配置httpd.conf,安装php后会自动添加php的模块到apache的配置文件,但是为了保险起见最好自己再检查一下:

LoadModule php5_module modules/libphp5.so
实际只需要增加下面两行:
AddType application/x-httpd-php .php .phpml
AddType application/x-httpd-php-source .phps

安装完之后,还有一个步骤就是拷贝php.ini文件

#cp php.ini-production /opt/local/php5_4_12/lib/php.ini

完了就可以写一个phpinfo()页面,进行测试,参考之前windows上部署php的文档即可

 

附录A:安装过程中遇到的问题

1.启动mysql时提示错误:

[ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)
[ERROR] Can't start server: can't create PID file: No such file or directory

原因很简单,mysql没有权限创建目录和文件,用root用户手动建一个,再重新启动就OK了
#mkdir /var/run/mysqld
#chown root:mysql /var/run/mysqld
#chmod 775 /var/run/mysqld

2.登录mysql时提示错误:

# ./mysql

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

发现/tmp下面确实没有这个文件,有人建议修改my.cnf(在/etc下面)直接将sock文件创建到/tmp下,也有人建议做个软连,为了通用起见,这里创建一个软连接

$ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

再次登录,还是报错

# ./mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (40)

这个错误得用到mysql的配置文件my.cnf了,在配置中添加如下内容:

[client]
socket=/var/lib/mysql/mysql.sock

再次登录就正常了

# /usr/local/mysql/bin/mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 6.0.11-alpha MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> shot databases;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'shot databases' at line 1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)

mysql>

3.编译PHP出错

grep: /usr/local/gcc-4.3.2/lib/libstdc++.la: No such file or directory
/bin/sed: can't read /usr/local/gcc-4.3.2/lib/libstdc++.la: No such file or directory
libtool: link: `/usr/local/gcc-4.3.2/lib/libstdc++.la' is not a valid libtool archive
make: *** [libphp5.la] Error 1

尝试按照网络上说的重新安装Development Tools(yum groupinstall Development Tools)但是没有什么用,全盘搜也找不到libstdc++.la这个文件。grep -r 搜索PHP源码目录也没有看到有链接这个文件,没办法只好删除--with-mysql 这个选项,然后再make就通过了,所以这个问题肯定和mysql有关。我去google了一下 .la 的文件,这是一个libtool工具用的脚本文件,于是去查看 /usr/local/mysql/lib 目录,发现里面确实有几个 .la 的文件并且里面都引用了 "/usr/local/gcc-4.3.2/lib/libstdc++.la" ,这很让人很奇怪,难道是因为我下载的mysql是alpha版本所以才会这样?好吧,将 .la 文件里所有的"/usr/local/gcc-4.3.2/lib/libstdc++.la"都删除掉,然后再使用--with-mysql选项make一下,呵呵,成功了,果然是这里的问题

 

附录B:可能用到的工具和遗留问题

1.配置Redhat使用CentOS的源

参考(http://blog.csdn.net/ustc_dylan/article/details/7763604)

首先应该下载rpm包,下面的文件是通过浏览器在mirror163上找到的,你看其他网站上的转载一般都比较老旧,不太适用,而且这里使用的是i386的版本,需要注意
wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-3.2.29-60.el6.centos.noarch.rpm
wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm
wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm
wget http://mirrors.163.com/centos/6/os/i386/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
我在用wget下载的时候提示下面的错误,后来发现好像是路由有问题,ping不通外网导致
Resolving mirrors.163.com... 123.58.173.106
Connecting to mirrors.163.com|123.58.173.106|:80... failed: Connection refused.

第二步卸载原有的yum

rpm -aq|grep yum|xargs rpm -e --nodeps

最后安装新的yum

rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.i686.rpm
rpm -ivh yum-3.2.29-60.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm

使用yum更新libstdc++时又出问题了:

[Errno 14] PYCURL ERROR 7 - "couldn't connect to host"

(这个网站上有关于yum失败的说明 http://xmodulo.com/how-to-fix-yum-errors-on-centos-rhel-or-fedora.html)

看起来还是连不上mirror主机,换网络吧。

2.关闭selinux

临时性关闭

#setenforce 0

永久关闭

修改/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disable

3.Linux修改路由提示错误"SIOCADDRT: No such process"

原因是网关地址和本地IP不在一个段内,还需要先将网关路由到本地:

#route add 172.25.20.3/32 dev eth1

#route add default gw 172.25.20.3

4.php页面显示中文为乱码

估计是因为安装的英文版的系统,字符处理有问题

5.访问php页面要配置防火墙

安装完php后,测试访问php的页面提示找不到网页,但是apache默认的index.html却是可以的,清空iptables策略,好像就可以访问了

#iptables -F

6.PHP链接数据库不通

预测是数据库用户权限设置问题,我记得myql需要配置来访者权限

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据