Linux系统安装php开发环境
来源:互联网 发布:java获取图片的宽和高 编辑:程序博客网 时间:2024/04/25 23:39
Linux系统centos6.5 PHP5.6 MySQL5.6 Nginx1.7
yum安装依赖库
yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison \ libtool-ltdl-devel libiconv libmcrypt mhash mcrypt pcre-devel openssl-devel freetype-devel libcurl-devel
安装PHP 5.6
#先下载PHPcd /softwarewget http://cn2.php.net/distributions/php-5.6.6.tar.gztar -zxvf php-5.6.6.tar.gzcd php-5.6.6.tar.gz#我们先配置下PHP的编译参数./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-pdo_mysql --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml --with-curl --enable-fpm --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-freetype-dir=/usr/lib64#编译 makemake install clean#复制php.inicp php.ini-development /usr/local/php/lib/php.inicp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf#运行php-fpm/usr/local/php/sbin/php-fpm#将php命令加入到全局vi /root/.bash_profile #将/usr/local/php/bin 加到后面,用:隔开PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/php/bin#重启source /root/.bash_profile
安装mysql 5.6
先卸载老版本:
#查看老版本号[root@centos6 /]# rpm -qa|grep -i mysqlmysql-libs-5.1.71-1.el6.x86_64#无依赖卸载删除[root@centos6 /]# rpm -ev --nodeps mysql-libs-5.1.71-1.el6.x86_64#检查下还存在否?[root@centos6 /]# rpm -qa|grep -i mysql[root@centos6 /]# rpm -q mysqlpackage mysql is not installed
再安装新版本:
cd /software#先下载mysql 5.6wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.23.tar.gztar zxvf mysql-5.6.23.tar.gzcd mysql-5.6.23#cmake配置下cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据库存放目录-DDEFAULT_CHARSET=utf8 \ #使用utf8字符-DDEFAULT_COLLATION=utf8_general_ci \ #校验字符-DEXTRA_CHARSETS=all \ #安装所有扩展字符集-DENABLED_LOCAL_INFILE=1 #允许从本地导入数据#编译安装make && make install#创建mysql用户和用户组groupadd mysqluseradd -r -g mysql mysql#给mysql目录设置目录权限chown -R mysql:mysql /usr/local/mysql#将mysql的启动服务添加到系统服务中cd /usr/local/mysql/cp support-files/my-default.cnf /etc/my.cnf#创建系统数据库的表cd scripts/./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/#复制mysql管理脚本到系统服务目录cd /opt/mysql/support-filescp mysql.server /etc/rc.d/init.d/mysql#添加mysql命令到系统服务命令chkconfig --add mysql#加入开机启动策略chkconfig mysql onservice mysql start#以后就可以调用service 命令来管理mysqlservice mysql startservice mysql stopservice mysql restart#将mysql命令加入全局可用vi /root/.bash_profile#在PATH=$PATH:$HOME/bin添加参数为:PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib#重新生效source /root/.bash_profile#修改root密码mysql -u root mysqlmysql>use mysql;mysql>desc user;mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; //为root添加远程连接的能力。mysql>update user set Password = password('12346') where User='root';mysql>select Host,User,Password from user where User='root'; mysql>flush privileges;mysql>exit#重新登录:mysql -uroot -p123456
安装nginx并连接php-fpm
如果软件下载失败或者被墙,可以下载我备份的云盘:
http://yunpan.cn/cZ2QJMSKVGsdU (提取码:06ec)
安装nginx的依赖包
nginx 依赖于 zlib pcre ssl 三个模块,安装之前要先安装它们,如果已经安装则忽略,我的机器其实在安装php的时候这些模块其实是有安装的,下面,我再来一次:
用源码方式安装:
这3个扩展 不需要指定安装目录,他们都默认安装在 /usr/local 目录下。
第一步,我将源代码统一下载到 /lamp 之下,基本上下载的都是最新版。openssl那个一定要下载最新版,以为之前的那个心跳漏洞。
cd /lamp wget http://zlib.net/zlib-1.2.8.tar.gztar -zxvf zlib-1.2.7.tar.gzcd zlib-1.2.7./configuremakemake install wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gztar -zxvf pcre-8.21.tar.gzcd pcre-8.21./configuremakemake install wget http://www.openssl.org/source/openssl-1.0.2.tar.gztar zxvf openssl-1.0.2.tar.gzcd openssl-1.0.2.tar.gz./config # 注意是config,不是configuremakemake install
好,如果没什么错误的话,3个扩展都已经安装好了,如果出现错误信息,基本都会有提示,我安装下载很顺利,没啥问题。
安装nginx
我同样也是下载的官网:nginx-1.7.10
wget http://nginx.org/download/nginx-1.7.10.tar.gztar -zxvf nginx-1.7.10.tar.gzcd nginx-1.7.10.tar.gz
下载解压完成,下面就是编译了:
./configure --prefix=/usr/local/nginx \--sbin-path=/usr/local/nginx/nginx \--conf-path=/usr/local/nginx/nginx.conf \--pid-path=/usr/local/nginx/nginx.pid \--with-http_ssl_module \--with-pcre=/lamp/pcre-8.32 \--with-zlib=/lamp/zlib-1.2.7 \--with-openssl=/lamp/openssl-1.0.2
注意:这3个扩展的目录是他们的源代码目录,不是安装目录,这点很容易搞错。
--with-pcre=/lamp/pcre-8.32 \ --with-zlib=/lamp/zlib-1.2.7 \ --with-openssl=/lamp/openssl-1.0.2
开始编译:
[root@localhost nginx-1.7.10.tar.gz] make ...[root@localhost nginx-1.7.10.tar.gz] make install
一般这3个扩展目录指定正确,是不会报错的,很顺利的就成功了。
启动 nginx
nginx的默认端口是80。所以启动之前要确保80端口没有被占用,如果之前安装过Apache, 它也是80端口,那么需要kill掉Apache,
如果想保留80端口,也可以修改/usr/local/nginx/nginx.conf中36行 listen 为 8080或其他;
我这里改成8080端口
启动命令是:
/usr/local/nginx/nginx
不报错就ok了:
查看下端口:
netstat -tnl|grep 8080tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
然后,我们打开浏览器访问下:
localhost:8080
出现以下,表示nginx 安装成功。
Welcome to nginx!If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com.Thank you for using nginx.
配置nginx以支持php
之前我们将了很多关于php-fpm的,现在php安装php-fpm其实就是为了配合nginx使用的。
所以,我们需要编辑nginx的配置文件,我们编译的时候指定了的:/usr/local/nginx/nginx.conf
打开后,编辑以下几行,我简单的标记了一下:
location / { root /usr/local/www; #web的根目录 index index.php index.html index.htm; # 加入index.php}location ~ \.php$ { root /usr/local/www; #web的根目录 fastcgi_pass 127.0.0.1:9000; #php-fpm的地址 fastcgi_index index.php; include fastcgi.conf;}
简单的这样改一下,满足基本的php需求就可以了。下面我们重新启动一下nginx:
有2中方式,第1种是先kill,再启动。第2种是平滑启动,推荐第2种
[root@localhost nginx]# ps -ef|grep nginxroot 31660 1 0 17:15 ? 00:00:00 nginx: master process ./nginxnobody 31954 31660 0 17:52 ? 00:00:00 nginx: worker processroot 31968 15419 0 17:52 pts/3 00:00:00 grep nginx[root@localhost nginx]kill 31660[root@localhost nginx]/usr/local/nginx/nginx
或者平滑升级,推荐这个
/usr/local/nginx/nginx -s reload
我们刚才把web目录改成 /usr/local/www 目录下,我们在下面新建一个index.php文件:
vi /usr/local/www/index.php<?php echo phpinfo();?>
打开浏览器输入:127.0.0.1:8080/index.php
看到熟悉的 PHP Version 5.6 表示成功了。
开启自启动nginx
开机启动的配置文件是:/etc/rc.local ,vi加入 /usr/local/nginx/nginx 即可
#!/bin/sh## This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if you don't# want to do the full Sys V style init stuff.touch /var/lock/subsys/local/usr/local/apache/bin/apachectl start/usr/local/bin/redis-server /etc/redis.conf/usr/local/php/sbin/php-fpm/usr/local/nginx/nginx
开启nginx的iptables限制
我们在本地访问127.0.0.1:8080/index.php,是可以打开的。 但是如果,在另外一台机子上访问:http://192.168.155.128:8080/index.php 不能访问,可能是这个8080端口号没有加入到iptables的白名单,所以需要加一下:
(PS: 如果你的nginx端口号是80,应该是已经在iptables白名单中了,如果能访问就不需要加了)
iptables的配置文件在这:/etc/sysconfig/iptables
我们vi 打开下,然后在倒数第二行上面加入:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
这句话的意思是将8080端口号加入白名单,不做访问限制。
# Firewall configuration written by system-config-firewall# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT
然后,重启下 iptables:
service iptables restart
好。再次访问下: http://192.168.155.128:8080/index.php 应该就能看到phpinfo页面了。
参考资料:
http://www.markdream.com/technologies/server/centos-install-nmp.shtml
http://www.cnblogs.com/fly1988happy/archive/2011/11/21/2257682.html
https://www.zybuluo.com/phper/note/79313
https://www.zybuluo.com/phper/note/73025
- Linux系统安装php开发环境
- Linux系统下源代码包方式安装PHP开发环境
- Ubuntu系统安装php开发环境
- Windows7系统环境安装配置PHP开发环境
- Win7系统环境安装配置PHP开发环境
- Win7系统环境安装配置PHP开发环境
- Win7系统环境安装配置PHP开发环境
- Linux系统下lua开发环境安装
- linux环境下安装配置PHP开发环境
- PHP 开发环境安装
- php开发环境安装
- OS X系统下安装PHP开发环境
- OS X系统下安装PHP开发环境
- CentOS 7.4系统-Apache-PHP安装-开发环境配置
- linux 安装php环境
- Linux 安装php环境
- linux安装php环境
- linux安装php环境
- get random 100color
- MySQL的information_schema的介绍
- 手把手教你配置第一个简单log4j实例
- AIX安装ssh
- Nginx 图片 js文件缓存配置方法
- Linux系统安装php开发环境
- 建造者模式 指挥者的作用
- PostgreSQL 性能测试工具
- 最新服务器安全防护批量管理
- 深入理解Linux内核-第七章 进程调度 http://blog.csdn.net/sailor_8318/article/details/2460177
- 如何用JAVA获取GOOGLE 地图经纬度,地址信息
- mysql 区间锁
- Sql Server常用功能
- Linux下MongoDB安装及使用