Linux 下搭建 php 开发环境完整教程

时间:2022-10-15 11:59:54
   在开始进入正题前,先普及一点基础知识。在 Linux 环境下,我们通过命令行安装软件的时候,可能会出现错误。当错误出现的时候,我们怎么撤销之前的步骤,重新安装软件呢?解决方案如下     (1) 已经执行 configure 操作     解决:根据正确的参数重新 configure 即可     (2)已经执行 configure、make 操作     解决:删除解压后的文件目录,重新解压、configure、make     (3)已经执行 configure、make、make install 操作     解决:首先删除安装后的文件(有指定安装目录的情况 /usr/local/http2),然后删除解压后的目录,最后重新解压、configure、make、make install 就行了。好了,下面开始进入正题了。
一、 安装 apache1. 配置(apache 安装配置) 在安装前记得切换到 root ,否则会因权限问题安装失败./configure --prefix=/usr/local/http2 \--enable-modules=all \--enable-mods-shared=all \--enable-so// --enable-mods-shared=all 模块共享类型,一次性编译所有模块到 apache 内执行 ./configure --help 可查看默认配置及配置帮助信息,如安装目录 --prefix 等
2. 安装执行 make && make install 就完成安装了
3. 启动 apache进入到安装目录 /usr/local/http2/bin执行命令 ./apachectl start 可启动 apache启动 apache 的时候,可能会提示 Could not reliably determine the server's fully ...其实这不是什么错误,可忽略,也可通过修改配置文件解决这个问题,进入安装目录,/usr/local/http2/conf/ 找到 httpd.conf ,在该文件中查找 ServerName,把它前面的 # 号去掉就行了 。
4. 访问安装完成后,在浏览器中输入本机 ip 地址,即可访问到 apache 默认的页面如输入本机 ip :192.168.0.141

二、 安装 php 的依赖软件现在要把 php 依赖的一些软件(xml、gd、jpeg、png、freetype)都安装上去 ,然后才能安装 php 。
1. 安装 xml 依赖下载 libxml2,然后安装安装前配置:./configure --prefix=/usr/local/libxml2 --without-zlib然后 make&&make install
2. 安装 jpeg8安装前配置 ./configure --prefix=/usr/local/jpeg --enable-share --enable-static然后 make && make install--enable-share 把 jpeg 需要的函数库程序都编译到该软件里面,这样函数调用速度快,但是软件本身比较大--enable-static 静态引入方式,这样当需要调用还没引入的函数时,会立即 include 进来,这样软件本身比较小,但是函数调用速度慢

3. 安装 libpng./configure && make && make install
4. 安装 freetype 库(字体库)./configure --prefix=/usr/local/freetypemake && make install
5. 安装 GD 库gd 库下载地址:https://bitbucket.org/libgd/gd-libgd/downloads./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg/ --with-png --with-zlib --with-freetype=/usr/local/freetypemake && make install
6. 安装 libXpm-3.5.10// 有的系统可能没安装这个,要自己安装

直接用默认的配置就行./configuremake && make instsall
三、安装配置 php1. 安装 php
参数解析:./configure --prefix=/usr/local/php --with-apxs2=/usr/local/http2/bin/apxsapache 的支持,作用: 给 apache 生成 php 模块;修改 /usr/local/http2/conf/httpd.conf 的配置文件,使其引入 php 模块mysqlnd 表示激活 php 本身的 mysql 驱动并使用,因还我们还没自己安装 mysql,所以这样可用默认的 mysql 。 --enable-mbstring=all 宽字节函数库对 php 的支持

./configure --prefix=/usr/local/php     --with-apxs2=/usr/local/http2/bin/apxs
    --with-mysql=mysqlnd    --with-pdo-mysql=mysqlnd    --with-mysqli=mysqlnd    --with-freetype-dir=/usr/local/freetype    --with-gd=/usr/local/gd    --with-zlib    --with-libxml-dir=/usr/local/libxml2    --with-jpeg-dir=/usr/local/jpeg    --with-png-dir    --with-xpm-dir=/usr/local/libxpm    --enable-mbstring=all    --enable-mbregex    --enable-shared
配置完成后,安装 make && make install
安装成功后,会出现如下提示
License: This software is subject to the PHP License, ... at this point. +---------------------------------------------------------------+
Thank you for using PHP.
    PHP 安装完成后,/usr/local/http2/conf/httpd.conf 会把相应的 php 模块引入进来,如     LoadModule php5_module            modules/libphp5.so     .... ...
2. 安装完成后,进行相关设置把 php 解压目录里面的 php.ini 配置文件到指定目录cp php.ini-development /usr/local/php/lib/php.ini
3. 配置 Apache 使其支持 phpvim /usr/local/http2/conf/httpd.conf(1)在 httpd.conf(Apache 主配置文件,在 /usr/local/http2/conf 目录下)中添加AddType application/x-httpd-php .php使 apache 遇到 php 文件时懂得调用 php 模块解析(2)设置时区在 /usr/local/php/lib 中修改 php.ini 配置文件,设置时区data.timezone = PRC(记得把前面的分别去掉)
设置完成后,重启 apache 服务器/usr/local/http2/bin/apachectl restart至此所有安装步骤完成,在 apache 的目录下(/usr/local/apache2/htdocs)写个测试文件如 test.php内容:<?phpphpinfo();?>然后在浏览器中访问:192.168.0.141/test.php如果访问成功,说明安装配置成功
注意:在使用 ThinkPHP 的时候,可能会出现下面这个问题

thinkphp开发的项目访问的时候出现了 页面错误!请稍后再试~ 排查了很多原因,最终是这样的解决的:

开启debug模式。在入口文件处加上 define(‘APP_DEBUG‘, true);  就ok了

此外,在系统目录下创建的文件夹,没有写权限,要修改文件夹权限才能写入,才能正常访问,如chmod -R 777 thinkphp(即让该文件夹及其所有子文件夹可读可写可执行)
四、安装配置 mysql1. 安装 cmake(更先进的 configure)解压后执行配置命令 ./bootstrap,配置完成后 make && make install,要以 root 权限安装 。
2. 安装 mysqltar zxvf mysql****cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_DATADIR=/usr/local/mysql/data-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci(安装目录,数据存储目录,默认的字符集,校对字符集然后 make && make install    在进行 mysql 的 configure 操作的时候,可能会提示软件依赖错误,依赖文件 libncurses5-dev
    解决方法:安装 ncurses-devel     rpm -ivh ncurses-devel-5.7-3.200090208.el6.i686.rpm(现在可能不是这个文件名了,自己 google 吧)     依赖解决好后要删除 CMakeCache.txt 文件。
3. 配置 mysql(1)给 mysql 复制一个配置文件在 mysql 我解压目录下,有个 support-files 文件夹,进入这个文件夹,执行复制命令cp my-medium.cnf /etc/my.cnf(2)useradd mysql(添加用户)(3)chmod +x /home/lion/storm/web-php/install/mysql5.5/install(4)chown -R mysql.mysql /home/lion/storm/web-php/install/mysql5.5/install(5)初始化 mysql 数据库/home/lion/storm/web-php/install/mysql5.5/install/scripts/mysql_install_db --user=mysql --basedir=/home/lion/storm/web-php/install/mysql5.5/install --datadir=/home/lion/storm/web-php/install/mysql5.5/install/data &
(6)把 mysql 安装文件(除了 data 之外)的主人都改为 root,避免数据库恢复为出厂设置chown -R root /home/lion/storm/web-php/install/mysql5.5/installchown -R mysql /home/lion/storm/web-php/install/mysql5.5/install/data(7)后台运行 mysql 服务/home/lion/storm/web-php/install/mysql5.5/install/bin/mysqld_safe --user=mysql &
查看 mysql 是否有启动ps -A | grep mysql如果启动成功,则显示以下信息------ mysqld_safe------ mysqld(8)进入 mysql 操作终端的执行程序(在 /home/lion/storm/web-php/install/mysql5.5/install/bin 目录下)执行命令 ./mysql 就可以运往 mysql 了。(9)设置 mysql 用户和密码为了数据库安全,把 localhost 之外的用户全部删除掉,并为 localhost 设置密码,设置密码时调用加密函数给密码加密;mysql 的所有用户信息都放在 mysql 数据库中,而且这也是 mysql 的核心数据库 。所以要到这个数据库中进行用户管理操作,执行命令use mysql 切换到这个数据库,执行下面的操作:    mysql> delete from user where Host != 'localhost';    mysql> select Host, User, Password form user;    mysql> update user set Password=password(123456);    mysql> select Host, User, Password from user;    mysql> flush privileges;(刷新,使对权限的修改立即生效)
(10)设置完成后,执行 flush privileges; 命令,使设置立即生效 。设置完成后,以后不要随便操作 mysql 中的 mysql 数据库了 。(11)执行 exit 命令退出当前 mysql,然后重新登录 mysql./mysql -uroot -p123456
(12)通过 php 中访问 mysql,在 apache 的 htdocs 目录下,创建一个 data.php 文件,来访问 mysql 。<?php    $link = mysql_connect('localhost', 'root', '123456');    mysql_select_db('test', $link);    mysql_query('set name utf8');    $sql = "select * from goods";    $qry = mysql_query($sql);    while($rst = mysql_fetch_assoc($qry)) {        print_r($rst);        echo "<br />";    }