Linux 下php环境配置, 即 LAMP =Linux+Apache+MySQL+PHP:(先以我自身的ubuntu为例子)
A、 PHP环境安装设置:(以自己的ubuntu系统为例的)
1.将系统更新到最新状态,在做任何操作之前都要做这一步,以确保系统的稳定,同时也不会有一些莫名其妙的现象出现。
$sudo apt-get update
$sudo apt-get dist-upgrade
2、安装PHP支持
$sudo apt-get install libapache2-mod-php5
$sudo apt-get install php5
如果想支持图形就加php5-gd,如果想支持Mysql就加php5-mysql,这里之所以要单独列出libapache2-mod-php5,主要是由于php5的依赖关系没有做好,有可能会安装上libapache-mod-php5的包,所以为了避免不必要的麻烦,干脆还是单独指定比较好。
3、修改PHP配置文件,以限制内存和文件最大上传尺寸
编辑/etc/php5/apache2/php.ini文件,先做一般配置,在改动之前,请先将该配置文件做个备份。以便在出错的时候可以恢复。
>memory_limit = 8M =>修改成你所需的内存大小
>upload_max_filesize = 2M =>修改文件最大上传尺寸
=============
>extension=mysql.so 支持Mysql服务
>extension=gd.so 支持gd函数
=============
其实在Ubuntu下,如果你安装了php5-mysql和php5-gd之后,会自动修改以上二行的,我们做的只不过是确认一下它们前面的注释符是否去掉。
补充:
1。目前大多数php的open source都是用php4写的,为了兼容以前的php版本,有时需要将register_long_arrays打开,否则$HTTP_GET_VARS和$HTTP_POST_VARS等变量将无法使用,会出现一些莫名其妙的问题。
2。另外,在装完php5后最好确认一下/etc/apache2/mods-enabled/下是否有链接:
php5.load -> /etc/apache2/mods-available/php5.load
4、加固PHP,以增强安全性。下面的安全性要因情况而定,所以我已经把它们的功能写清楚了,如果有问题的话,看看是否由于下面哪种限制条件所造成,可相应将其注释掉。
下面开始加固php,我们再次编辑/etc/php5/apache2/php.ini文件,之所以没有一次改完,主要是为了给大家一个清晰的思路。
>#打开安全模式,打开他的好处就是PHP文件只能访问所有者和PHP文件所有着一样的文件,即使在chroot环境下也无法访问jail中属主不一样的文件,类似于php shell这样的后门就没用武之地了哦,phpshell是很流行的php后门,他可以执行系统命令,就象他的名字一样,和shell很接近。
>safe_mode = On
>#下面的设置就限制了fopen(), file()等函数可以操作的目录范围,避免了入侵者非法读取文件,一定要在/var/www后面加"/",否则/var/wwww下的文件也能被访问 。该选项会禁止任何不在/var/www/目录下的PHP文件运行,包括任何以软链接方式链到/var/www/目录下的程序,如PhpMyAdmin包,就在该选项设定后无法正常运行。
>open_basedir = /var/www/
>#禁止使用phpinfo和get_cfg_var函数,这样可以避免泄露服务信息,一般在在确认PHP能正常工作之后再使之关闭
>disable_functions = phpinfo,get_cfg_var
>#设置php程序错误日志
>error_reporting = E_ALL
>log_errors = On
>error_log = /var/log/php_err.log
>#如果php程序没有指明需要register_globals的话,最好把register_globals设置为Off,这样可以避免很多安全问题的。注意,如果你的程序是需要register_globals的话,可千万别关。Ubuntu默认是关闭的。
>register_globals = Off
>#禁止打开远程地址,记得最近出的php include的那个漏洞吗?就是在一个php程序中include了变量,那么入侵者就可以利用这个控制他一脸无辜:才五元钱的买卖。不过他身后的空玻璃水壶把握了最后的呈现机会,反射出光线吸引我,我加了七元钱换下它。服务器在本地执行远程的一个php程序,例如phpshell,所以我们关闭这个。
>allow_url_fopen = Off
B、Apache 安装 这里说的只是单独安装apache而已 至于配置的话再说吧
$sudo apt-get install apache2 终端下执行此命令即可安装apache 简单吧 嘿嘿
它默认目录是在 /var/www,浏览器下测试:http://IP地址 ;这个还有一个功能就是可以当做web式的ftp 提供下载,只要将要共享的目录链接即 ln 到 /var/www 下 就OK 了
C、MySQL 数据库安装:
$ sudo apt-get install mysql_server mysql_client php5-mysql 终端下执行此命令自然就OK ;
这样就基本完成了 MySQL数据库的安装 方便简单
说明:个人感觉就是在ubuntu系统下安装些软件在网路速度稳定的情况下,确实是很快的,也很简单方便的,不过这些前提是要在 ubuntu更新源选择得明智 合理 才能实现咯 祝福你下吧 呵呵
附录: Apache与PHP 一同安装关联的话更是快咯 方法如下:
对于PHP4:$sudo apt-get install apache2 php4 libapache2-mod-php4
而对于PHP5: $sudo apt-get install apache2 php5 libapache2-mod-php5
其中Apache configuration file is locate at:/etc/apache2/apache2.conf and your web floder is /var/www 下 everything is finish ,is go well ,OK Let’s come on ~
D、 Phpmyadmin 数据库管理界面安装: (phpmyadmin installation)
$sudo apt-get install phpmyadmin 终端下执行此行命令就完成了phpmyadmin的安装
注:apache最后重启下: $ /etc/init.d/apache2 restart
附录:
考虑到现在大家上网路技术用到的linux系统基本都是红帽子的,所以再另外整理一份出redhat linux 下的php环境配置,不过这我个人在配置的时候出现了些问题就是,主要是原先自己没注意到在安装redhat linux 系统的时候已经将 MySQL 与 Apache 给默认安装了,后来又下载rpm包 或者 tar包安装进去 结果二者自然会产生冲突,产生错误,都是熬夜配置设置的,搞得头都晕晕的,一气之下将整个红帽子系统格掉重新换上ubuntu,oyeah 实在是太赞了 哈哈 所以以下这些是我第一次在linux配置的 如果出现有些问题再一起探讨吧 见谅了 (改天我再用我另一个盘上的红帽子系统配置测试看看吧)
Start:
首先最好把路径定义在:/usr/local/[softname] ;
把所有软件都放在同一个目录下比较有条理吧:/var/ftp/server 这样还可以为大家提供下载,哈哈
安装顺序大致为:MySQL =>Apache => PHP=>Phpmyadmin 吧
A、MySQL Installation
1、解压、解包: #tar –zxvf mysql-5.0.37.tar.gz
2、将解压包出来的 mysq-5.0.37 转移到 /usr/local/mysql 下:#mv mysql-5.0.37 /usr/local/mysql
3、创建 mysql组 以及 创建数据库用户: #groupadd mysql and then #useradd mysql
4、将数据库用户划分到相应的组里: useradd –g mysql mysql
5、执行scripts /mysql_install_db –user=mysql
6、执行chown –R root .
7、再执行chown –R mysql data
8、chgrp –R mysql .
9、bin/mysqld_safe –user=mysql &
10、测试 ./bin/mysql –u root –p
注:修改密码:bin/mysqladmin –u root –p ‘password’ (password 指密码);
B、 Apache 安装配置
1、进入到软件所在目录:cd /usr/ftp/server/http-2.2.4
2、运行编译:./configure –prefix=/server/apache –enable-so
3、执行make 再执行 make install
4、测试:cd /usr/local/apache/bin
ls
apachectl start
浏览器firefox 地址栏中输入:http://localhost 或者
http://127.0.0.1
注:apache 停止: apachectl stop