Linux系统安装php开发环境

2024-09-08 14:38

本文主要是介绍Linux系统安装php开发环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

#先下载PHP
cd /software
wget http://cn2.php.net/distributions/php-5.6.6.tar.gz
tar -zxvf php-5.6.6.tar.gz
cd 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
#编译 
make
make install clean
#复制php.ini
cp php.ini-development /usr/local/php/lib/php.ini
cp /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 mysql
mysql-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 mysql
package mysql is not installed

再安装新版本:

cd /software
#先下载mysql 5.6
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz
tar zxvf mysql-5.6.23.tar.gz
cd 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 mysql
useradd -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-files
cp mysql.server /etc/rc.d/init.d/mysql
#添加mysql命令到系统服务命令
chkconfig --add mysql
#加入开机启动策略
chkconfig mysql on
service mysql start
#以后就可以调用service 命令来管理mysql
service mysql start
service mysql stop
service 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 mysql
mysql>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.gz
tar -zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make
make install 
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.gz
tar -zxvf pcre-8.21.tar.gz
cd pcre-8.21
./configure
make
make install 
wget http://www.openssl.org/source/openssl-1.0.2.tar.gz
tar zxvf openssl-1.0.2.tar.gz
cd openssl-1.0.2.tar.gz
./config  # 注意是config,不是configure
make
make install 

好,如果没什么错误的话,3个扩展都已经安装好了,如果出现错误信息,基本都会有提示,我安装下载很顺利,没啥问题。

安装nginx

我同样也是下载的官网:nginx-1.7.10

wget http://nginx.org/download/nginx-1.7.10.tar.gz
tar -zxvf nginx-1.7.10.tar.gz
cd 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 8080
tcp        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 nginx
root     31660     1  0 17:15 ?        00:00:00 nginx: master process ./nginx
nobody   31954 31660  0 17:52 ?        00:00:00 nginx: worker process
root     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
<?phpecho 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-prohibited
COMMIT

然后,重启下 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开发环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1148385

相关文章

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间