本文详细阐述在 Linux 系统中搭建 PHP 环境,由于 PHP 就是由 C 语言编写的,最初也是运行在 Linux 系统中,所以Linux 是 PHP 的最佳环境。
本文中作者是以虚拟机(VMware)安装的 CentOS 5.5 进行试验。下面进行安装详解
1、准备工作
一、请先确认你所安装的 Linux 系统中是否已经安装了Apache、MySQL、PHP,如果安装请先卸载。
查看是否安装(Apache为例)
[root@gamejzy Linux]# rpm -qa|grep httpd
注:rpm -qa 是查看本机中已经安装的所有软件。 grep httpd 是过滤出与 httpd(apache) 有关的软件。注:grep php 是查看 PHP;grep mysql 是查看 MySQL
如果执行完命令后出现空,那么说明机器中没有安装 Apache 软件,如果出现诸如下情况说明已经安装。
如果如上图所示的那样,那么就需要把这三个软件都卸载了。
卸载命令如下:
[root@gamejzy Linux]# rpm -e httpd-2.2.3-43.el5.centos --nodeps
注:--nodeps 是强制卸载
二、请保证你的 Linux 系统中安装了 gcc、g++ 编译器
检查是否安装很简单,在命令行中敲入“gc”或“g+”,按 tab 键,看下面是否有命令显示。
如果没有也没关系,安装 gcc、g++ 的方法十分简单
安装gcc:
yum -y install gcc
安装g++:
yum install gcc-c++
三、将所有的软件(大部分都是 tar 包)包拷贝到 /tmp/lamp 底下,并解压
解压 tar.gz 命令(php软件为例):tar zxvf php-5.2.6.tar.gz
当执行完此命令后,会在当前目录下创建一个 php-5.2.6 的文件夹,解压的所有文件会放置在 php-5.2.6 文件夹中
请按照同样的方法将所有的包都解压,并且删除所有的 *.tar.gz 文件
[root@gamejzy lamp]# rm -rf *.gz
以上命令删除所有的 .gz 文件
四、编译安装软件包介绍
在 Linux 系统安装每个源代码软件包的过程如下:
△ 配置(configure)
△ 编译(make)
△ 安装(make install)
2、搭建 LAMP 环境(请按照下面给出的顺序进行安装)
这里所有的软件都安装在 /usr/local 下
一、安装libxml
安装顺序:1、进入 libxml 目录;2、配置参数(包括安装路径;依赖软件;安装功能等);3、编译;4、安装。注:所有软件包安装类似
[root@gamejzy lamp]# cd libxml2-2.6.30/ [root@gamejzy libxml2-2.6.30]# ./configure --prefix=/usr/local/libxml2
./configure 为软件包配置参数命令,--prefix 表示指定的安装目录,大部分目录若不在会自动创建,个别不会,需要我们手动创建
[root@gamejzy libxml2-2.6.30]# make && make install
以上命令是将编译和安装在一起执行,由于软件小,安装速度比较快,若大的软件,可能会花比较长的时间。
二、安装libmcrypt
[root@gamejzy lamp]# cd libmcrypt-2.5.8/ [root@gamejzy libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt [root@gamejzy libmcrypt-2.5.8]# make && make install
三、安装zlib
[root@gamejzy lamp]# cd zlib-1.2.3/ [root@gamejzy zlib-1.2.3]# ./configure [root@gamejzy zlib-1.2.3]# make && make install
./configure 后面不要跟 --prefix 参数,让其安装在默认目录中,因为安装 libpng 的时候会用到 zlib。
四、安装libpng
[root@gamejzy lamp]# cd libpng-1.2.31/ [root@gamejzy libpng-1.2.31]# ./configure --prefix=/usr/local/libpng [root@gamejzy libpng-1.2.31]# make && make install
五、安装jpeg6
这个软件配置的时候不会自动创建目录,需要我们手动创建
[root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6 [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/bin [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/lib [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/include [root@gamejzy libpng-1.2.31]# mkdir -p /usr/local/jpeg6/man/man1
生成目录完毕!
[root@gamejzy lamp]# cd jpeg-6b/ [root@gamejzy jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static [root@gamejzy jpeg-6b]# make && make install
./configure 中参数说明:
--enable-shared 建立共享库使用的GNU的libtool
--enable-static 建立静态库使用的GNU的libtool
六、安装freetype
[root@gamejzy lamp]# cd freetype-2.3.5/ [root@gamejzy freetype-2.3.5]# ./configure --prefix=/usr/local/freetype [root@gamejzy freetype-2.3.5]# make && make install
七、安装autoconf
[root@gamejzy lamp]# cd autoconf-2.61/ [root@gamejzy autoconf-2.61]# ./configure [root@gamejzy autoconf-2.61]# make && make install
这个软件直接安装在默认目录下。
八、安装GD
[root@gamejzy lamp]# cd gd-2.0.35/ [root@gamejzy gd-2.0.35]# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/ [root@gamejzy gd-2.0.35]# make && make install
./configure 中参数说明:
--with-jpeg=/usr/local/jpeg6/ 指定到哪去找jpeg库文件的位置
--with-png=/usr/local/libpng/ 指定到哪去找png库文件的位置
--with-freetype=/usr/local/freetype/ 指定到哪去找freetype 2.x字体库的位置
注意 安装此软件包可能会出现以下错误,如下图所示:
如果出现如此错误,解决方法:
[root@gamejzy gd-2.0.35]# vi gd_png.c
找到关键词"png.h" 命令:/png.h 回车
替换为:/usr/local/libpng/include/png.h
效果如下图所示:
保存退出,继续执行"make && make install" 执行即可安装成功。
九、安装Apache(关键)
[root@gamejzy lamp]# cd httpd-2.2.9/ [root@gamejzy httpd-2.2.9]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support [root@gamejzy httpd-2.2.9]# make && make install
./configure 中的参数说明:
--sysconfdir=/etc/httpd 指定Apache服务器的配置文件(httpd.conf等文件)存放位置
--with-included-apr 使用捆绑APR/APR-Util的副本
--enable-so 以动态共享对象(DSO)编译
--enable-deflate=shared 缩小传输编码的支持
--enable-expires=shared 期满头控制
--enable-rewrite=shared 基于规则的URL操控
--enable-static-support 建立一个静态链接版本的支持
测试 Apache 服务器
1、检查 /usr/local/ 下是否出现 apache2 目录;
2、检查 /etc/ 目录下面是否出现 httpd 目录,即里面是否有 httpd.conf 文件、extra目录等内容
3、开启 apache 服务器
[root@gamejzy httpd]# /usr/local/apache2/bin/apachectl start
stop(关闭)、restart(重启)
4、查看 apache 服务器是否启动,即查看 80 端口是否启动
[root@gamejzy httpd]# netstat -tnl|grep 80
执行完命令,出现如下所示,表示已经启动
tcp 0 0 :::80 :::* LISTEN
5、在浏览器中访问
如果在本机的话,请在浏览器地址栏中输入:localhost 或127.0.0.1
如果是远程连接的话,比如:SSH连接,那么请在浏览器地址栏中输入 Linux 的 ip 地址。比如:192.168.1.233
若网页中出现大字“
It works!
”说明 Apache 安装成功。
测试完毕!
添加 Apache 每次开机自动启动
[root@gamejzy /]# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
十、安装MySQL(重要)
安装 MySQL 之前先建立一个专门管理 MySQL 的组和用户名
建立一个组名叫“mysql”
[root@gamejzy /]# groupadd mysql
建立一个用户名叫“mysql”,让他属于“mysql”组
[root@gamejzy /]# useradd -g mysql mysql
[root@gamejzy lamp]# cd mysql-5.0.41/ [root@gamejzy mysql-5.0.41]# ./configure --prefix=/usr/local/mysql --with-extra-charsets=all [root@gamejzy mysql-5.0.41]# make && make install
./configure 参数说明:
--with-extra-charsets=all 安装MySQL 所有的字符集
注意 在 ./configure 的时候如果出现如下错误
原因:缺少ncurses安装包。
解决方法:下载安装相应软件包
yum list|grep ncurses yum -y install ncurses-devel
ncurses安装完成之后,再进行 ./configure 配置!
MySQL安装完成之后,设置一些内容,这些内容非常繁琐,但是又非常关键的,希望大家耐心学习。
1、设置配置文件 my.cnf,放在 /etc/ 目录下
[root@gamejzy mysql-5.0.41]# cp support-files/my-medium.cnf /etc/my.cnf
2、初始化数据库文件,安装完 MySQL 之后,并不会出现 MySQL 的数据文件及数据存放位置
首先切换到 MySQL 的安装目录下
[root@gamejzy mysql-5.0.41]# cd /usr/local/mysql/
使用 bin 目录下的 mysql_install_db 进行初始化数据库文件,并使用上面建的 mysql 用户
[root@gamejzy mysql]# bin/mysql_install_db --user=mysql
运行完之后,会发现 MySQL 安装目录中会多一个 var 目录,里面放置的就是数据库文件,包括我们已经建的数据库都会放置在这个目录里面。
3、设置 MySQL 安装目录权限
改变目录下的所有文件和目录的拥有者为 root
[root@gamejzy mysql]# chown -R root .
改变 var 目录的拥有者为 mysql 用户
[root@gamejzy mysql]# chown -R mysql ./var/
改变所有目录和文件的用户组为 mysql 组
[root@gamejzy mysql]# chgrp -R mysql .
4、启动 MySQL
[root@gamejzy mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
& 表示在后台启动
这时,使用 netstat -tnl,如果看见 3306 端口,那么说明启动成功
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
5、设置权限,如果我们现在直接使用 bin 目录下的 mysql 命令,那么就能登录
[root@gamejzy mysql]# bin/mysql
这样就太危险了!因此需要设置权限。
先登录进 MySQL 中,使用 SQL 命令删除主机不是“localhost” 的用户名(MySQL 中的用户都mysql库中的user表),只留允许本机登录的账号。
mysql> delete from mysql.user where Host != 'localhost';
刷新授权表
mysql> flush privileges;
设置允许本机进入 MySQL 的 root 用户的密码
mysql> set password for 'root'@'localhost'=password('123456');
注:设置的密码必须记住,不然就进不去 MySQL 数据库了。
到这步的时候,我们的 root 用户,就已经设置了密码(密码为“123456”),我们可以测试一下,键入“exit”退出MySQL
这时登录 MySQL 数据库的命令不能是 bin/mysql 那么简单,应该如下
[root@gamejzy mysql]# bin/mysql -h 127.0.0.1 -u root -p123456
-h 指定主机名
-u 用户名
-p 密码
6、关闭 MySQL 数据库服务器
[root@gamejzy mysql]# bin/mysqladmin -u root -p shutdown
这里的是 root 用户是 MySQL 中的用户,执行后会提示你输入密码,Enter password:
输入密码,回车即可关闭数据库。
启动命令,请看本节4
7、加入到开机默认启动
[root@gamejzy mysql]# echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local
十一、安装PHP(重要)
这里我们安装 PHP 的高版本 php-5.3.19,安装参数比较多,请一定注意。
[root@gamejzy lamp]# cd php-5.3.19/ [root@gamejzy php-5.3.19]# ./configure \ > --prefix=/usr/local/php \ > --with-config-file-path=/usr/local/php/etc \ > --with-apxs2=/usr/local/apache2/bin/apxs \ > --with-mysql=/usr/local/mysql/ \ > --with-libxml-dir=/usr/local/libxml2/ \ > --with-png-dir=/usr/local/libpng/ \ > --with-jpeg-dir=/usr/local/jpeg6/ \ > --with-freetype-dir=/usr/local/freetype/ \ > --with-gd=/usr/local/gd2/ \ > --with-mcrypt=/usr/local/libmcrypt/ \ > --with-mysqli=/usr/local/mysql/bin/mysql_config \ > --enable-soap \ > --enable-mbstring=all \ > --enable-sockets
./configure 参数说明:
--with-config-file-path=/usr/local/php/etc 指定PHP5配置文件存入的路径
--with-apxs2=/usr/local/apache2/bin/apxs 告诉PHP查找Apache 2的地方
--with-mysql=/usr/local/mysql/ 指定MySQL的安装目录
--with-libxml-dir=/usr/local/libxml2/ 告诉PHP放置libxml2库的地方
--with-png-dir=/usr/local/libpng/ 告诉PHP放置libpng库的地方
--with-jpeg-dir=/usr/local/jpeg6/ 告诉PHP放置jpeg库的地方
--with-freetype-dir=/usr/local/freetype/ 告诉PHP放置freetype库的地方
--with-gd=/usr/local/gd2/ 告诉PHP放置gd库的地方
--with-mcrypt=/usr/local/libmcrypt/ 告诉PHP放置libmcrypt库的地方
--with-mysqli=/usr/local/mysql/bin/mysql_config 变量激活新增加的MySQLi功能
--enable-soap 变量激活SOAP和Web services支持
--enable-mbstring=all 使多字节字符串支持
--enable-sockets 变量激活socket通讯特性
编译可能出现的问题:
出现如下报错:
解决方法:
cd /usr/local/mysql/lib/mysql/ ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so
编译OK后,出现“Thank you for using PHP.”,说明配置成功。
[root@gamejzy php-5.3.19]# make && make install
编译和安装,时间会比较长,耐心等待吧!
编译完成后,需要以下配置
1、设置 php.ini 配置文件
[root@gamejzy php-5.3.19]# cp php.ini-development /usr/local/php/etc/php.ini
注:/usr/local/php/etc 是在配置的时候指定的位置
2、和 Apache 整合
先打开 Apache 的配置文件 httpd.conf
[root@gamejzy php-5.3.19]# vi /etc/httpd/httpd.conf
会发现文件中有这么条内容
LoadModule php5_module modules/libphp5.so
这就说明 PHP 已经加载到 Apache 服务器中了,我们所要做的是告诉 Apache 服务器,哪些后缀名使用 PHP 解析
在 vi 编辑器中搜索“AddType application/x-compress .Z”
在后面添加一条:AddType application/x-httpd-php .php
修改后的效果如下图
保存并退出,重启 Apache
[root@gamejzy php-5.3.19]# /usr/local/apache2/bin/apachectl stop [root@gamejzy php-5.3.19]# /usr/local/apache2/bin/apachectl start
3、测试 Apache 服务器是否可以解析 PHP
往 /usr/local/apache2/htdocs 目录下添加一个phpinfo.php 文件,键入以下代码:
<?php header("Content-Type:text/html;Charset=utf-8"); phpinfo(); ?>
打开浏览器,访问该文件,看到如下图所示,说明 PHP 安装成功,并且和 Apache 服务器整合成功。
到此,CentOS 下的 LAMP 环境就搭建完毕了,虽然步骤繁琐,但是“工欲善其事,必先利其器”,花些时间,搭建一个完美的环境是值得的。
Atas ialah kandungan terperinci CentOS5.5下搭建最佳的LAMP环境. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

PHP digunakan untuk membina laman web dinamik, dan fungsi terasnya termasuk: 1. Menjana kandungan dinamik dan menghasilkan laman web secara real time dengan menyambung dengan pangkalan data; 2. Proses Interaksi Pengguna dan Penyerahan Bentuk, Sahkan Input dan Menanggapi Operasi; 3. Menguruskan sesi dan pengesahan pengguna untuk memberikan pengalaman yang diperibadikan; 4. Mengoptimumkan prestasi dan ikuti amalan terbaik untuk meningkatkan kecekapan dan keselamatan laman web.

PHP menggunakan sambungan MySQLI dan PDO untuk berinteraksi dalam operasi pangkalan data dan pemprosesan logik sisi pelayan, dan memproses logik sisi pelayan melalui fungsi seperti pengurusan sesi. 1) Gunakan MySQLI atau PDO untuk menyambung ke pangkalan data dan laksanakan pertanyaan SQL. 2) Mengendalikan permintaan HTTP dan status pengguna melalui pengurusan sesi dan fungsi lain. 3) Gunakan urus niaga untuk memastikan atomik operasi pangkalan data. 4) Mencegah suntikan SQL, gunakan pengendalian pengecualian dan sambungan penutup untuk debugging. 5) Mengoptimumkan prestasi melalui pengindeksan dan cache, tulis kod yang sangat mudah dibaca dan lakukan pengendalian ralat.

Menggunakan penyataan preprocessing dan PDO dalam PHP secara berkesan dapat mencegah serangan suntikan SQL. 1) Gunakan PDO untuk menyambung ke pangkalan data dan tetapkan mod ralat. 2) Buat kenyataan pra -proses melalui kaedah menyediakan dan lulus data menggunakan ruang letak dan laksanakan kaedah. 3) Hasil pertanyaan proses dan pastikan keselamatan dan prestasi kod.

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

PHP digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan pembangunan API. 1) e-dagang: Digunakan untuk fungsi keranjang belanja dan pemprosesan pembayaran. 2) Sistem Pengurusan Kandungan: Digunakan untuk penjanaan kandungan dinamik dan pengurusan pengguna. 3) Pembangunan API: Digunakan untuk Pembangunan API RESTful dan Keselamatan API. Melalui pengoptimuman prestasi dan amalan terbaik, kecekapan dan pemeliharaan aplikasi PHP bertambah baik.

PHP menjadikannya mudah untuk membuat kandungan web interaktif. 1) Secara dinamik menjana kandungan dengan memasukkan HTML dan paparkannya dalam masa nyata berdasarkan input pengguna atau data pangkalan data. 2) Penyerahan borang proses dan menjana output dinamik untuk memastikan bahawa htmlspecialchars digunakan untuk mencegah XSS. 3) Gunakan MySQL untuk membuat sistem pendaftaran pengguna, dan gunakan kata laluan dan preprocessing untuk meningkatkan keselamatan. Menguasai teknik ini akan meningkatkan kecekapan pembangunan web.

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

PHP masih dinamik dan masih menduduki kedudukan penting dalam bidang pengaturcaraan moden. 1) kesederhanaan PHP dan sokongan komuniti yang kuat menjadikannya digunakan secara meluas dalam pembangunan web; 2) fleksibiliti dan kestabilannya menjadikannya cemerlang dalam mengendalikan borang web, operasi pangkalan data dan pemprosesan fail; 3) PHP sentiasa berkembang dan mengoptimumkan, sesuai untuk pemula dan pemaju yang berpengalaman.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna