困扰很久的linux下安装PHP的问题总算解决了,参考文档和经验都在下面了,供大家参考拉.
使用的软件:
freetype-2.1.10
gd-2.0.33
httpd-2.2.8
jpegsrc.v6b
libpng-1.2.8
libxml2-2.6.26
mysql-5.0.27
php-5.2.5
phpmyadmin-2.11.5.2
zlib-1.2.3
(下面的内容是参考资料和自己的经验结合,所以有些软件的版本不一样,希望大家谅解)
一、安装Mysql
1、建立msyql用户组
[root@localhost ~]# grep mysql /etc/group
#查询系统中是否有mysql这个用户组,没有则添加。
[root@localhost ~]# groupadd mysql
#增加一个名为mysql的用户组
2、建立mysql用户
[root@localhost ~]# grep mysql /etc/passwd
#查询系统中是否有mysql这个用户,没有则添加。
[root@localhost ~]# useradd mysql -g mysql -M -s /sbin/nologin
#增加一个名为mysql的用户。
-g:指定新用户所属的用户组(group)
-M:不建立根目录
-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。
3、解压:mysql
[root@localhost ~]# grep mysql /etc/group
#查询系统中是否有mysql这个用户组,没有则添加。
[root@localhost ~]# groupadd mysql
#增加一个名为mysql的用户组
2、建立mysql用户
[root@localhost ~]# grep mysql /etc/passwd
#查询系统中是否有mysql这个用户,没有则添加。
[root@localhost ~]# useradd mysql -g mysql -M -s /sbin/nologin
#增加一个名为mysql的用户。
-g:指定新用户所属的用户组(group)
-M:不建立根目录
-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。
3、解压:mysql
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# tar -zxvf mysql-5.0.27.tar.gz
#……(信息略)……
#解压缩
3、设置编译器的编译参数
[root@localhost src]# cd /usr/local/src/mysql-5.0.27
[root@localhost mysql-5.0.27]# ./configure --prefix=/usr/local/mysql --with-unix-socket-path=/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --with-charset=gbk --without-debug --enable-assembler --without-isam --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
#这些设置告诉编译器如何编译apache:
–prefix=/usr/local/mysql
指定msyql安装目录
–with-unix-socket-path=/tmp/mysql.sock
这个是指定mysql服务器启动后,联机套接字文件所处的位置和文件名。
–localstatedir=/usr/local/mysql/data
指定mysql的数据库目录
–with-charset=gbk
添加gbk中文字符支持
–without-debug
去除debug模式
–enable-assembler
使用一些字符函数的汇编版本
–without-isam
去掉isam表类型支持,现在很少用了,isam表是一种依赖平台的表
–with-client-ldflags=-all-static
–with-mysqld-ldflags=-all-static
4、编译和安装
[root@localhost mysql-5.0.27]# make
#“make”命令把源文件编译成可执行的二进制文件
[root@localhost mysql-5.0.27]# make install
#“make install”把二进制文件和配置文件安装在合适的目录下
6、初始化系统库
[root@localhost mysql-5.0.27]# ./scripts/mysql_install_db
7、其它设置
[root@localhost mysql-5.0.27]# cp support-files/my-medium.cnf /etc/my.cnf -fv
#注解:
-f,删除目标中同名的文件或目录,并且不给任何提示。
#还有一些其它的my.cnf配置文件。适合不同的应用规模。型式如my-*.cnf。根据自己的需要cp。
[root@localhost mysql-5.0.27]# cp support-files/mysql.server /etc/init.d/mysqld
#添加到起动脚本
[root@localhost mysql-5.0.27]# chmod 700 /etc/init.d/mysqld
[root@localhost mysql-5.0.27]# cd /usr/local
[root@localhost local]# chmod 750 mysql -R
#注解:
-R 递归改变目录及其内容的权限。
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql
#设置所有者,mysql起动时会以mysql用户的身份运行,这样可以提高系统的安全性。
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql/data
[root@localhost local]# cd /usr/local/mysql/libexec
[root@localhost libexec]# cp mysqld mysqld.old
[root@localhost libexec]# strip mysqld
[root@localhost libexec]# chkconfig –add mysqld
#添加一个服务,当然也可以手工添加服务。
[root@localhost libexec]# chkconfig –level 345 mysqld on
#设置开机时起动
[root@localhost libexec]# service mysqld start
#启动mysql服务
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysql /sbin/mysql
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysqldump /sbin/mysqldump
[root@localhost libexec]# mysqladmin -uroot password “youpassword”
#设置root帐户的密码
[root@localhost libexec]# mysql -uroot -p
# 输入你设置的密码
mysql>use mysql;
mysql>delete from user where password=”";
#删除用于本机匿名连接的空密码帐号
mysql>flush privileges;
mysql> show databases;
+———-+
| Database |
+———-+
| mysql |
| test |
+———-+
2 rows in set (0.08 sec)
#显示一下数据库,测试mysql是否安装正常。
mysql> quit
如果忘记密码,可以:
我的系统是linux,最近新装好的mysql在进入mysql工具时,总是有错误提示:
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@localhost src]# tar -zxvf mysql-5.0.27.tar.gz
#……(信息略)……
#解压缩
3、设置编译器的编译参数
[root@localhost src]# cd /usr/local/src/mysql-5.0.27
[root@localhost mysql-5.0.27]# ./configure --prefix=/usr/local/mysql --with-unix-socket-path=/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --with-charset=gbk --without-debug --enable-assembler --without-isam --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
#这些设置告诉编译器如何编译apache:
–prefix=/usr/local/mysql
指定msyql安装目录
–with-unix-socket-path=/tmp/mysql.sock
这个是指定mysql服务器启动后,联机套接字文件所处的位置和文件名。
–localstatedir=/usr/local/mysql/data
指定mysql的数据库目录
–with-charset=gbk
添加gbk中文字符支持
–without-debug
去除debug模式
–enable-assembler
使用一些字符函数的汇编版本
–without-isam
去掉isam表类型支持,现在很少用了,isam表是一种依赖平台的表
–with-client-ldflags=-all-static
–with-mysqld-ldflags=-all-static
4、编译和安装
[root@localhost mysql-5.0.27]# make
#“make”命令把源文件编译成可执行的二进制文件
[root@localhost mysql-5.0.27]# make install
#“make install”把二进制文件和配置文件安装在合适的目录下
6、初始化系统库
[root@localhost mysql-5.0.27]# ./scripts/mysql_install_db
7、其它设置
[root@localhost mysql-5.0.27]# cp support-files/my-medium.cnf /etc/my.cnf -fv
#注解:
-f,删除目标中同名的文件或目录,并且不给任何提示。
#还有一些其它的my.cnf配置文件。适合不同的应用规模。型式如my-*.cnf。根据自己的需要cp。
[root@localhost mysql-5.0.27]# cp support-files/mysql.server /etc/init.d/mysqld
#添加到起动脚本
[root@localhost mysql-5.0.27]# chmod 700 /etc/init.d/mysqld
[root@localhost mysql-5.0.27]# cd /usr/local
[root@localhost local]# chmod 750 mysql -R
#注解:
-R 递归改变目录及其内容的权限。
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql
#设置所有者,mysql起动时会以mysql用户的身份运行,这样可以提高系统的安全性。
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql/data
[root@localhost local]# cd /usr/local/mysql/libexec
[root@localhost libexec]# cp mysqld mysqld.old
[root@localhost libexec]# strip mysqld
[root@localhost libexec]# chkconfig –add mysqld
#添加一个服务,当然也可以手工添加服务。
[root@localhost libexec]# chkconfig –level 345 mysqld on
#设置开机时起动
[root@localhost libexec]# service mysqld start
#启动mysql服务
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysql /sbin/mysql
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysqldump /sbin/mysqldump
[root@localhost libexec]# mysqladmin -uroot password “youpassword”
#设置root帐户的密码
[root@localhost libexec]# mysql -uroot -p
# 输入你设置的密码
mysql>use mysql;
mysql>delete from user where password=”";
#删除用于本机匿名连接的空密码帐号
mysql>flush privileges;
mysql> show databases;
+———-+
| Database |
+———-+
| mysql |
| test |
+———-+
2 rows in set (0.08 sec)
#显示一下数据库,测试mysql是否安装正常。
mysql> quit
如果忘记密码,可以:
我的系统是linux,最近新装好的mysql在进入mysql工具时,总是有错误提示:
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
使用网上介绍的方法修改root用户的密码:
# mysqladmin -uroot -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
# mysqladmin -uroot -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
现在终于被我找到了解决方法,如下(请先测试方法三,谢谢!):
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
方法一:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
二、安装Apache
1、下载:apache
[root@localhost src]# chmod +x httpd-2.2.8.tar.gz
[root@localhost src]# tar -zxvf httpd-2.2.8.tar.gz
3)设置编译器的编译参数
[root@localhost src]# cd httpd-2.2.8
[root@localhost httpd-2.2.8]# ./configure –prefix=/usr/local/apache2 –enable-module=so
4)编译和安装:
[root@localhost httpd-2.2.8]# make; make install
#如果没有错误的话,那么Apache就已经安装在/usr/local/apache2目录中了
3、启动服务:
[root@localhost httpd-2.2.8]# /usr/local/apache2/bin/apachectl start
4、确定启动状:
[root@localhost apache2]# netstat -utl
tcp 0 0 *:http *:* LISTEN
#看到上面这行就表示你的Apache已经启动。
#用浏览器访问,看到It works!,说明apache已经安装成功了,恭喜您!
三、安装PHP
1、准备目录:
mkdir /usr/local/modules
#jpeg目录
mkdir /usr/local/modules/jpeg6
mkdir /usr/local/modules/jpeg6/bin
mkdir /usr/local/modules/jpeg6/lib
mkdir /usr/local/modules/jpeg6/include
mkdir /usr/local/modules/jpeg6/man
mkdir /usr/local/modules/jpeg6/man/man1
2、安装zlib
# tar xzvf zlib-1.2.3.tar.gz
# mv zlib-1.2.3 /usr/local/src/
# cd /usr/local/src/zlib-1.2.3
不要用--prefix自定义安装目录,影响gd的安装
# ./configure
# make && make install
3、安装freetype
# tar xzvf freetype-2.3.5.tar.bz2
# mv freetype-2.3.5 /usr/local/src/
# cd /usr/local/src/freetype-2.3.5
# ./configure --prefix=/usr/local/modules/freetype
# make && make install
4、安装libpng
# tar jxvf libpng-1.2.20.tar.bz2
不要用--prefix自定义安装目录,影响gd的安装
# mv libpng-1.2.20 /usr/local/src/
# cd /usr/local/src/libpng-1.2.5
# cp scripts/makefile.std makefile
# make test
# make install
5、安装jpeg
# tar xzvf jpegsrc.v6b.tar.gz
# mv jpeg-6b /usr/local/src/
# cd /usr/local/src/jpeg-6b
# ./configure --prefix=/usr/local/modules/jpeg6 --enable-shared --enable-static
# make && make install
6、安装GD
# tar xzvf gd-2.0.33.tar.gz
# mv gd-2.0.33 /usr/local/src/
# cd /usr/local/src/gd-2.0.33
# ./configure --prefix=/usr/local/modules/gd --with-jpeg=/usr/local/modules/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/modules/freetype
# make
# make install
1、准备目录:
mkdir /usr/local/modules
#jpeg目录
mkdir /usr/local/modules/jpeg6
mkdir /usr/local/modules/jpeg6/bin
mkdir /usr/local/modules/jpeg6/lib
mkdir /usr/local/modules/jpeg6/include
mkdir /usr/local/modules/jpeg6/man
mkdir /usr/local/modules/jpeg6/man/man1
2、安装zlib
# tar xzvf zlib-1.2.3.tar.gz
# mv zlib-1.2.3 /usr/local/src/
# cd /usr/local/src/zlib-1.2.3
不要用--prefix自定义安装目录,影响gd的安装
# ./configure
# make && make install
3、安装freetype
# tar xzvf freetype-2.3.5.tar.bz2
# mv freetype-2.3.5 /usr/local/src/
# cd /usr/local/src/freetype-2.3.5
# ./configure --prefix=/usr/local/modules/freetype
# make && make install
4、安装libpng
# tar jxvf libpng-1.2.20.tar.bz2
不要用--prefix自定义安装目录,影响gd的安装
# mv libpng-1.2.20 /usr/local/src/
# cd /usr/local/src/libpng-1.2.5
# cp scripts/makefile.std makefile
# make test
# make install
5、安装jpeg
# tar xzvf jpegsrc.v6b.tar.gz
# mv jpeg-6b /usr/local/src/
# cd /usr/local/src/jpeg-6b
# ./configure --prefix=/usr/local/modules/jpeg6 --enable-shared --enable-static
# make && make install
6、安装GD
# tar xzvf gd-2.0.33.tar.gz
# mv gd-2.0.33 /usr/local/src/
# cd /usr/local/src/gd-2.0.33
# ./configure --prefix=/usr/local/modules/gd --with-jpeg=/usr/local/modules/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/modules/freetype
# make
# make install
7、安装PHP
# tar -jxvf php-5.2.1.tar.bz2
# mv php-5.2.1 /usr/local/src
# cd /usr/local/src/php-5.2.1/
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/modules/gd --with-jpeg-dir=/usr/local/modules/jpeg6 --with-png-dir=/usr/lib --with-freetype-dir=/usr/local/modules/freetype --with-zlib --enable-gd
# make && make install
#cp php.ini-dist /usr/local/lib/php.ini
# tar -jxvf php-5.2.1.tar.bz2
# mv php-5.2.1 /usr/local/src
# cd /usr/local/src/php-5.2.1/
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/modules/gd --with-jpeg-dir=/usr/local/modules/jpeg6 --with-png-dir=/usr/lib --with-freetype-dir=/usr/local/modules/freetype --with-zlib --enable-gd
# make && make install
#cp php.ini-dist /usr/local/lib/php.ini
8、整合Apache和PHP
修改/usr/local/apache2/conf/httpd.conf文件
在行AddType application/x-gzip .gz .tgz后添加一行
AddType application/x-httpd-php .php .phtml
修改/usr/local/apache2/conf/httpd.conf文件
在行AddType application/x-gzip .gz .tgz后添加一行
AddType application/x-httpd-php .php .phtml
修改行DirectoryIndex index.php
重新启动Apache 并且在它的/usr/local/apache2/htdocs/目录创建一个phpinfo.php文件。
内容如下:
<?php
phpinfo();
?>
在IE中输入http://127.0.0.1/phpinfo.php。
内容如下:
<?php
phpinfo();
?>
在IE中输入http://127.0.0.1/phpinfo.php。
9、配置php.ini
去掉
extension=php_gd
extension=php_mysql.dll
extension=php_mysqli.dll
去掉
extension=php_gd
extension=php_mysql.dll
extension=php_mysqli.dll
10、安装phpMyAdmin
#tar –zvxf phpMyAdmin.tar.gz
mv phpMyAdmin /usr/local/apache2/htdocs/phpmyadmin
mv phpMyAdmin /usr/local/apache2/htdocs/phpmyadmin
修改config.ini.php
设置$cfg['blowfish_secret']='config';
Over~~~~