LINUX下的PHP

由于linux系统的稳定性,大部分的PHP服务器都被部署在linux上,而且像redis等扩展在linux能得到更好的支持,所以对于PHP程序员来说,使用linux的功底也相当重要,接下来总结一下我从一开始在linux下安装配置linux的心得。

linux系统安装

首先是选择linux操作系统,我使用的是Cent OS 6.7 ,它类似红帽系统,简单易接触,而且开源免费。

CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux(小红帽)依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。

然后要准备一台linux机器,虚拟机是最好的选择了,它便于安装,随开随用。

虚拟机管理我推荐VM ware station,安装管理都方便,而且功能强大。用过小巧的virtual box,在win7下安装要改theme主题文件,辛苦装好的环境因为未知原因(兼容问题排除后,猜测是BIOS设置的问题,可参考)打不开虚拟机而放弃后,终于选择了VM,VM下安装linux的教程网上到处是,还有全程配图版。

说一下要注意的地方吧:虚拟机配置选择“桥接模式”,这样,虚拟机和主机就在同一个IP段下,可以很轻松地互相访问,VM下如图:

然后是我们经常要遇到的问题网络配置、和虚拟之间的交互、yum配置。

网络配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0 按需求修改以下信息

DEVICE=eth0 //网卡序号

NAME="System eth0"//设备名

TYPE=Ethernet//设备类型

HWADDR=00:0C:29:C9:81:D7//系统检测到的硬件ID

ONBOOT=yes //是否开机运行

BOOTPROTO=static //获取IP方式,有static(静态方式)、dhcp(DHCP协议)、none(不指定)

IPADDR=192.168.1.66 //IP地址

NETMASK=255.255.255.0 //子网掩码

GATEWAY=192.168.1.1//网关

这样配置好之后,如果linux系统有桌面系统的话就可以直接用浏览器访问外网了。还需要进行主机和虚拟机之间的连通,可以在windows的cmd命令行中运行ipconfig命令来获取当前ip信息,然后可以在主机和虚拟机之间使用ping命令测试连接状态。

ping 192.168.1.xxx 

注意,虚拟机可能会用防火墙屏蔽80端口,导致虚拟机能访问自己,两者也能相互ping通,虚拟机也能访问主机,但主机却无法访问虚拟机的网站,通过修改防火墙设置或关闭防火墙能解决这一问题。

/etc/init.d/iptables -I INPUT -p tcp --dport 80 -j ACCEPT //修改不屏蔽80端口。

/etc/init.d/iptables stop //关闭防火墙

这样在配置好环境之后,就可以在主机和虚拟机之间互相访问了。

主机环境下操作虚拟机

配置好之后,便可以用工具来解决虚拟机和主机之间切换复制信息不便的问题了,这里我使用Secure CRT来进行主机与虚拟机之间的连接。

安装打开之后,点击quick connect按钮新增一个连接操作,如下图:

然后输入用户密码,保存。

还要注意使用Secure CRT时的编码问题,默认情况下,虚拟机的中文会显示乱码 ,需要以下配置:

然后让虚拟机进入后台运行状态,在VM界面,点击关闭虚拟机窗口,会弹出如下菜单。

选择后台运行,这样就可以不用管虚拟机窗口,尽情地用Secure CRT在window下操作虚拟机了。

yum配置

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum一般会在系统安装时自动安装,如果使用yum命令时提示找不到命令,那就在光盘的Packages文件夹里搜索yum安装包安装。

使用yum之前要先配置yum源。

切换到/etc/yum.repos.d/目录下,先将原来的yum源备份一个,然后用wget命令获取一个yum源。

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.bak

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

配置好后我们就可以用yum来安装所需的软件了,用yum源来安装必备库和编译软件 gd gd-devel libxml2-devel gcc gcc-c++ zlib等

用yum安装的软件会找不到安装目录,可以用用rpm -ql packagename 查询安装地址

接下来安装mysql  mysql-server 安装好后记得用 mysqladmin -u root password xxxx设置好root密码

然后用wget命令+地址 下载php安装包,手动编译PHP时要注意:

--with-apxs2=/usr/local/apache2/bin/apxs//将其编译为apache的核心。

--enable-fpm //如果使用nginx服务器,此项要选,产生一个独立的PHP进程,在php/sbin/php-fpm,直接执行会产生一个端口号为9000的PHP进程。

PHP添加扩展模块

扩展模块一般分为两部分:扩展服务器和php扩展。

像mongo等扩展服务器是扩展的核心,要在各自的官网找到下载地址,用wget命令下载下来,然后解压安装,一般是官方编译好的可执行文件,直接复制到目标目录即可。

而PHP扩展文件,则是一个函数库,通过函数库与扩展服务器连接并操作数据库,大家可以去PHP官方扩展仓库 https://pecl.php.net/index.php下载扩展。

先将扩展包下载下来,然后解压,进入目录,用php/bin下的phpize运行一下(注意php用yum安装,找不到phpize,可用yum install php-devel来安装phpize),产生一个configure文件。

再用./configure --prefix=/usr/local/... –with-php-config=/usr/local/php/bin/php-config 命令编译

最后make / make test /make install

会得到一个形如/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/的地址,这个文件夹里存放着我们编译出来的PHP模块文件xxx.so(如同windows下的xxx.dll)

然后修改/lib/php.ini文件,添加extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xxx.so将模块扩展加入。

这样简单的PHP环境便搭建好了。

如果您觉得本文对您有帮助,您可以推荐或关注我,如果您有什么问题,可以在下方留言讨论,谢谢。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JAVA高级架构开发

浅谈Nginx服务器的内部核心架构设计!

Nginx---Ngine X,是一款免费的、自由的、开源的、高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;Nginx以...

3070
来自专栏Sorrower的专栏

详尽! Win10安装Java8+Tomcat9!

Java也好, Tomcat也好, 都是很实用的啦, 早点掌握还是有必要的. 喜欢记得点赞哦, 有意见或者建议评论区哦, 当然暗中关注我也是可以的.

2693
来自专栏枕边书

Linux - 请允许我静静地后台运行

前言 常在 linux 下玩耍的开发者肯定会经常遇到需要对进程调度的情况,在 windows 中点击 最小化 去干别的就 OK 了,那么在 linux 下怎么办...

2355
来自专栏北京马哥教育

Linux 下各文件夹的结构说明及用途介绍

/home:用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示。

1360
来自专栏为数不多的Android技巧

如何调试Android Native Framework

半年前写了一篇文章,介绍 如何调试Android Framework,但是只提到了Framework中Java代码的调试办法,但实际上有很多代码都是用C++实现...

3732
来自专栏IT技术精选文摘

从构建分布式秒杀系统聊聊分布式锁

最近懒成一坨屎,学不动系列一波接一波,大多还都是底层原理相关的。上周末抽时间重读了周志明大湿的 JVM 高效并发部分,每读一遍都有不同的感悟。路漫漫,借此,把前...

1143
来自专栏守望轩

Visual Studio 2008 每日提示(二十八)

#271、启用地址级调试的设置的作用是什么? 原文链接:What the Enable Address-Level Debugging option does...

3044
来自专栏技术支持log

新购腾讯云 coreOS 系统服务器一段时间后无法登陆原因

问题现象: 新购coreOS刚开始可以正常远程登陆,但是过一段时间后就无法远程登陆了,如果有留意会发现在登陆系统10分钟左右后窗口会弹出下列信息,通知了系统会...

2601
来自专栏破晓之歌

15款Django开发常用软件包 原

1. Python social auth 一款社交账号认证/注册机制,支持Django、Flask、Webpy等在内的多个开发框架,提供了约50多个服...

652
来自专栏LhWorld哥陪你聊算法

hadoop集群篇--从0到1搭建hadoop集群

本来有套好好的集群,可是不知道为什么虚拟机镜像文件损坏,结果导致集群不能用。所以不得不重新搭套集群,借此机会顺便再重新搭套吧,顺便提醒一句大家,自己虚拟机的集群...

1591

扫码关注云+社区

领取腾讯云代金券