search
HomeBackend DevelopmentPHP ProblemHow to set up a php development environment under linux

How to build a PHP development environment under Linux: first install apache and start it; then install PHP's dependent software; then install PHP through the command "make && make install"; and finally restart apache.

How to set up a php development environment under linux

Recommended: "PHP Video Tutorial"

Complete Tutorial on Building a PHP Development Environment under Linux

Before getting into the topic, let’s popularize some basic knowledge. In a Linux environment, errors may occur when we install software through the command line. When an error occurs, how do we undo the previous steps and reinstall the software? The solution is as follows

(1) The configure operation has been executed

Solution: Reconfigure according to the correct parameters

(2) The configure and make operations have been executed

Solution: Delete the decompressed file directory, re-decompress, configure, make

(3) Configure, make, make install operations have been executed

Solution: First delete the installed files (If you specify the installation directory /usr/local/http2), then delete the decompressed directory, and finally re-decompress, configure, make, and make install. Okay, let’s get down to business.

1. Install apache

1. Configuration (apache installation configuration) Remember to switch to root before installation, otherwise the installation will fail due to permission issues

./configure --prefix=/usr/local/http2 \
--enable-modules=all \
--enable-mods-shared=all \
--enable-so

// -- enable-mods-shared=all module sharing type, compile all modules into apache at one time

Execute ./configure --help to view the default configuration and configuration help information, such as installation directory--prefix, etc.

2. Installation

Execute make && make install to complete the installation

3. Start apache

Enter the installation directory/usr/local/http2/bin

Execute the command ./apachectl start to start apache

When starting apache, you may be prompted Could not reliably determine the server's fully...

In fact, this is not an error , can be ignored, or you can solve this problem by modifying the configuration file,

Enter the installation directory, /usr/local/http2/conf/, find httpd.conf, and search for ServerName in the file,

Just remove the # sign in front of it.

4. Visit

After the installation is completed, enter the local IP address in the browser to access the apache default page

For example, enter the local IP address: 192.168 .0.141

2. Install php dependent software

Now you need to install some software that php depends on (xml, gd, jpeg, png, freetype), and then you can install php.

1. Install xml dependencies

Download libxml2, and then install it

Configuration before installation: ./configure --prefix=/usr/local/libxml2 --without-zlib

Then make&&make install

2. Install jpeg8

Configure before installation./configure --prefix=/usr/local/jpeg --enable-share --enable- static

Then make && make install

--enable-share compiles all the function library programs required by jpeg into the software, so that the function calling speed is fast, but the software itself is relatively large

--enable-static static introduction method, so that when a function that has not yet been introduced needs to be called, it will be included immediately. In this way, the software itself is smaller, but the function calling speed is slow

3. Install libpng

./configure && make && make install

4. Install the freetype library (font library)

./configure --prefix=/usr/local/freetype
make && make install

5. Install the GD library

gd library download address: 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/freetype
make && make install

6. Install libXpm-3.5.10

// 有的系统可能没安装这个,要自己安装

Just use the default configuration

./configure
make && make instsall

3. Install and configure php

1. Install php

Parameter analysis:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/http2/bin/apxs

apache support, function: generate php module for apache; modify the configuration file of /usr/local/http2/conf/httpd.conf, so that The introduction of the php module

mysqlnd means activating and using the mysql driver of php itself. Since we have not installed mysql ourselves, the default mysql can be used.

--enable-mbstring=all Wide byte function library support for 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

After the configuration is completed, install make && make install

After the installation is successful, there will be As shown below

License:
This software is subject to the PHP License, ... at this point.
+---------------------------------------------------------------+
Thank you for using PHP.

After the PHP installation is completed, /usr/local/http2/conf/httpd.conf will introduce the corresponding php module, such as

LoadModule php5_module modules/libphp5.so

.... ...

2. After the installation is complete, make relevant settings

Extract the php.ini configuration file in the php directory to the specified directory

cp php.ini-development /usr/local/php/lib/php.ini

3. Configure Apache to support php

vim /usr/local/http2/conf/httpd.conf

(1) Add

AddType application/x-httpd-php .php
in httpd.conf (Apache main configuration file, in the /usr/local/http2/conf directory)

Enable apache to know how to call the php module to parse when encountering a php file

(2) Set the time zone

Modify the php.ini configuration file in /usr/local/php/lib and set Time zone

data.timezone = PRC (remember to remove the previous ones)

After the setting is completed, restart the apache server

/usr/local/http2/bin/apachectl restart

至此所有安装步骤完成,在 apache 的目录下(/usr/local/apache2/htdocs)写个测试文件如 test.php

内容:

<?php
phpinfo();
?>

然后在浏览器中访问:192.168.0.141/test.php

如果访问成功,说明安装配置成功

注意:在使用 ThinkPHP 的时候,可能会出现下面这个问题

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

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

此外,在系统目录下创建的文件夹,没有写权限,要修改文件夹权限才能写入,才能正常访问,如

chmod -R 777 thinkphp(即让该文件夹及其所有子文件夹可读可写可执行)

四、安装配置 mysql

1. 安装 cmake(更先进的 configure)

解压后执行配置命令 ./bootstrap,配置完成后 make && make install,要以 root 权限安装 。

2. 安装 mysql

tar 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/install
chown -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 != &#39;localhost&#39;;
    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(&#39;localhost&#39;, &#39;root&#39;, &#39;123456&#39;);
    mysql_select_db(&#39;test&#39;, $link);
    mysql_query(&#39;set name utf8&#39;);
    $sql = "select * from goods";
    $qry = mysql_query($sql);
    while($rst = mysql_fetch_assoc($qry)) {
        print_r($rst);
        echo "<br />";
    }

The above is the detailed content of How to set up a php development environment under linux. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
ACID vs BASE Database: Differences and when to use each.ACID vs BASE Database: Differences and when to use each.Mar 26, 2025 pm 04:19 PM

The article compares ACID and BASE database models, detailing their characteristics and appropriate use cases. ACID prioritizes data integrity and consistency, suitable for financial and e-commerce applications, while BASE focuses on availability and

PHP Secure File Uploads: Preventing file-related vulnerabilities.PHP Secure File Uploads: Preventing file-related vulnerabilities.Mar 26, 2025 pm 04:18 PM

The article discusses securing PHP file uploads to prevent vulnerabilities like code injection. It focuses on file type validation, secure storage, and error handling to enhance application security.

PHP Input Validation: Best practices.PHP Input Validation: Best practices.Mar 26, 2025 pm 04:17 PM

Article discusses best practices for PHP input validation to enhance security, focusing on techniques like using built-in functions, whitelist approach, and server-side validation.

PHP API Rate Limiting: Implementation strategies.PHP API Rate Limiting: Implementation strategies.Mar 26, 2025 pm 04:16 PM

The article discusses strategies for implementing API rate limiting in PHP, including algorithms like Token Bucket and Leaky Bucket, and using libraries like symfony/rate-limiter. It also covers monitoring, dynamically adjusting rate limits, and hand

PHP Password Hashing: password_hash and password_verify.PHP Password Hashing: password_hash and password_verify.Mar 26, 2025 pm 04:15 PM

The article discusses the benefits of using password_hash and password_verify in PHP for securing passwords. The main argument is that these functions enhance password protection through automatic salt generation, strong hashing algorithms, and secur

OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.OWASP Top 10 PHP: Describe and mitigate common vulnerabilities.Mar 26, 2025 pm 04:13 PM

The article discusses OWASP Top 10 vulnerabilities in PHP and mitigation strategies. Key issues include injection, broken authentication, and XSS, with recommended tools for monitoring and securing PHP applications.

PHP XSS Prevention: How to protect against XSS.PHP XSS Prevention: How to protect against XSS.Mar 26, 2025 pm 04:12 PM

The article discusses strategies to prevent XSS attacks in PHP, focusing on input sanitization, output encoding, and using security-enhancing libraries and frameworks.

PHP Interface vs Abstract Class: When to use each.PHP Interface vs Abstract Class: When to use each.Mar 26, 2025 pm 04:11 PM

The article discusses the use of interfaces and abstract classes in PHP, focusing on when to use each. Interfaces define a contract without implementation, suitable for unrelated classes and multiple inheritance. Abstract classes provide common funct

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version