首页
登录 | 注册

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下如图:

LINUX下的PHP

然后是我们经常要遇到的问题网络配置、和虚拟之间的交互、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按钮新增一个连接操作,如下图:

 LINUX下的PHP

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

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

LINUX下的PHP

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

 LINUX下的PHP

选择后台运行,这样就可以不用管虚拟机窗口,尽情地用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环境便搭建好了。

 

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


相关文章

  • 快三个月没写博客了,一直在忙着准备面试和去面试的路上,所以没时间写,也没什么想写的.现在告一段落,就总结一波! 面经 本人真的是双非一本.为什么加“真的”?因为有的人也写着"双非一本,进入阿里",但是某电子科技大学,比9 ...
  • Linux的内存分页管理
    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载   内存是计算机的主存储器.内存为进程开辟出进程空间,让进程在其中保存数据.我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存 ...
  • java中常见的集合类大部分是非线程安全的,在多线程情况下会报并发修改异常(ConcurrentModificationException) 并发下的ArrayList类: 1 //集合类不安全的例子 2 public class Coll ...
  • 详解linux进程间通信-消息队列
    前言:前面讨论了信号.管道的进程间通信方式,接下来将讨论消息队列. 一.系统V IPC 三种系统V IPC:消息队列.信号量以及共享内存(共享存储器)之间有很多相似之处. 每个内核中的 I P C结构(消息队列.信号量或共享存储段)都用一个 ...
  • 详解linux进程间通信-管道 popen函数 dup2函数
    前言:进程之间交换信息的唯一方法是经由f o r k或e x e c传送打开文件,或通过文件系统.本章将说明进程之间相互通信的其他技术—I P C(InterProcess Communication).今天将介绍半双工的管道. 一.匿名管 ...
  • CentOS 7安装Python3.6过程(让linux系统共存Python2和Python3环境)
    CentOS 7系统自带了python2,不过可以不用2版本,直接使用python3运行python脚本就可以,但是千万别去动系统自带的python2,因为有程序依赖目前的python2环境,比如yum,动了yum就无法运行了,其他有的程序 ...

2020 cecdns.com webmaster#cecdns.com
12 q. 0.077 s.
京ICP备10005923号