(1) 下載php源碼包-> 解壓-> make 編譯-> install 安裝;
(2)如果linux系統支持apt-get 命令,則在終端輸入: apt-get install php
2. linux下php安裝目錄在哪
工具/原料
linux系統php安裝源碼包
方法/步驟
1
【下載php源碼】:從php的官方網站下載php的安裝源碼包。
2
【解壓安裝包】:下載的安裝包是經過壓縮的gz格式,在linux可以使用自帶的工具tar進行解壓,在安裝包所在目錄執行命令:tar -zxvf php-5.5.11.tar.gz
3
【配置安裝變數】:打開解壓後的目錄-執行命令:cd php-5.5.11;配置安裝環境-執行命令:./configure --prefix=/usr/local/servers/php ,「/usr/local/servers/php」是安裝路徑,可以改成自己喜歡的安裝路徑。
4
【編譯源碼】:在解壓目錄執行編譯命令:make
5
【安裝php】:切換到root用戶-執行命令:sudo su root;安裝-執行命令:make install
創建軟鏈:執行命令:ln -s /usr/local/servers/php/bin/php /usr/local/bin/php
3. linux環境安裝PHP環境的步驟和前期准備的注意事項有哪些
一.架構。確認你安裝 的架構是什麼 lamp ,還是 lnmp。首先需要能搭建出環境
1。兩者都要安裝 php ,其中 php 安裝的過程有很多
可以參考一下:php 源碼安裝
這個安裝是 php5的,如果安裝的 是 php7,編譯會有一點不同:
安裝 php -
2。都需要安裝 mysql
mysql 源碼安裝
3。如果需要安裝apache:
apache 安裝
apache 都其他配置,請在本頁面搜索:apache -
如果需要安裝 nginx:
nginx 訪問 php -
二.依賴模塊編譯。這種安裝環境主要看你程序當中用到了那些 依賴模塊,編譯的時候需要注意
包括 nginx /apache ,php
三.配置。上面已經有相關配置介紹,需要自己去熟悉相關都配置是什麼意思,需要哪些配置。
四.此處遷移還涉及到資料庫到遷移,可以參考一下相關命令
4. 在linux下安裝php有哪些方法
最直接的方法就是yum安裝,如果你想練練手的話可以選擇源碼安裝,我可以給你發送所有的安裝步驟,因為這些是一套的東西,不是單純安裝PHP就行
5. 如何在linux上安裝php5.6,謝謝,
不知道你問的linux,是哪個發行版本,常用的如 ubntu,centos,debian等。
我列一個centos7(伺服器常用這個版本)的安裝方法吧
centos7默認使用yum install 來安裝程序,但默認源安裝的php是5.4的,版本比較低,
要安裝高版本的,要麼下載源代碼手動編譯安裝,但對不熟悉的,萬一出點錯誤,會越搞越亂。我一般使用epel源安裝php,裡面各個版本都有,最新的php7.3
首先安裝epel
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
這裡面的url是目前我用的,如果提示出錯,就是換url了,可以在電腦上手動打開epel源列表去檢查 epel-release是哪個版本,換上對應的名字
按版本安裝php
rpm-Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yuminstallphp56wphp56w-mysqlphp56w-pdophp56w-gdphp56w-sslphp56w-mbstringphp56w-cliphp56w-xmlphp56w-bcmath
我這里列的是一些常用的php擴展,如果需要其它的,手動加上即可
如果需要安裝php其它版本,把包名里的56改成對應版本即可 ,如
yuminstallphp71wphp71w-mysqlphp71w-pdophp71w-gdphp71w-sslphp71w-mbstringphp71w-cliphp71w-xmlphp71w-bcmath
yuminstallphp72wphp72w-mysqlphp72w-pdophp72w-gdphp72w-sslphp72w-mbstringphp72w-cliphp72w-xmlphp72w-bcmath
可對應安裝php7.1和php7.2,這種安裝方法,會默認配置好對應的設置,php.ini在/etc/中查找,命令行也默認啟用了 (php-cli)
6. linux php網站怎麼安裝
一、安裝Apache2.2.22
1、到官網下載 http://httpd.apache.org/download.cgi
2、解壓
tar -zxvf httpd-2.2.22.tar.gz
3、建立目標文件夾(注意以下所有操作都時在root用戶下執行的)
mkdir /usr/local/apache2
也就是說等下安裝的apache2要安裝到這個文件夾裡面
4、配置
回到原來解壓之後產生的文件夾
./configure --prefix=/usr/local/apache2 --enable-mole=shared
要加上後面的參數,否則無法使用php,-enable-mole=shared表示Apache可以動態的載入模塊
這一步,出現了很多問題:
第一個錯誤為:
checking for APR... no
configure: error: APR not found. Please read the documentation.
解決方法:
download the latest versions of both APR and APR-Util from Apache APR, unpack them into ./srclib/apr and ./srclib/apr-util (be sure the domain names do not have version numbers; for example, the APR distribution must be under ./srclib/apr/)
then do
./configure --with-included-apr
原文章地址:http://stackoverflow.com/questions/9436860/apache-httpd-setup-and-installatio
另外一種解決方法為:
分別安裝APR和APR-util,安裝方法為:首先下載這兩個文件,然後解壓,進入解壓後目錄,然後把APR和APR-util分別安裝到/usr/local/文件夾的apr和apr-util文件夾下。APR的具體安裝方法為:
[root@localhost 52lamp]# tar -zxvf apr-1.4.2.tar.gz //unzip -o apr-1.4.2.zip
[root@localhost 52lamp]# cd apr-1.4.2
[root@localhost apr-1.4.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.4.2]# make
[root@localhost apr-1.4.2]# make install
安裝Apr-util 在./confiure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
其他步驟類似。
第二個錯誤為:no acceptable C compiler found in $Path
直接運行 yum install gcc,安裝Gcc即可
第三個問題為:pcre-config for libpcre not found
解決方法就是 下載prce安裝包,和APR類似,安裝到/usr/local/pcre文件夾下面即可。PS:fedora下安裝c++編譯器g++的命令為:yum install gcc-c++ 。
5、編譯
make
6、安裝
make install
7、啟動,重啟和停止 ,先切換到安裝完成後的目錄/usr/local/apache2/bin
./apachectl -k start
./apachectl -k restart
./apachectl -k stop
8、配置文件(滿足最基本的配置)
編輯 /usr/local/apache2/conf/httpd.conf 文件
找到:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在後面添加:
AddType application/x-httpd-php .php(使Apcche支持PHP)
AddType application/x-httpd-php-source .php5
找到:
<IfMole dir_mole>
DirectoryIndex index.html
</IfMole>
添加:
<IfMole dir_mole>
DirectoryIndex index.html index.php
</IfMole>
找到:
#ServerName www.example.com:80
修改為:
ServerName 127.0.0.1:80或者ServerName localhost:80
記得要去掉前面的「#」
9、測試
在瀏覽器里輸入http://127.0.0.1
如果出現It Works!說明成功。這是我的測試結果:O(∩_∩)O哈哈~
10、修改默認的Web站點目錄
默認的目錄為 "/usr/local/apache2/htdocs",修改apache的配置文件httpd.conf,比如在新建一個 /home/gyw/WebSite的目錄作為apache的站點目錄
找到DocumentRoot這一行修改為:DocumentRoot "/home/gyw/WebSite"
找到 <Directory> 這一行修改為:<Directory "/home/gyw/WebSite">
測試:修改到文件夾出現錯誤:
「You don't have permission to access /index.html on this server.」
解決方法:
更改文件許可權;chmod 755 index.html
打開apache配置文件httpd.conf,找到這么一段:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
Satisfy all
</Directory>
測試結果如下:
二、安裝PHP
1、 下載
http://www.php.net/downloads.php
2、解壓
tar -zxvf php-5.3.16.tar.gz
3、建立目標文件夾
mkdir /usr/local/php
也就是說等下安裝的php要安裝到這個文件夾裡面
4、配置
回到原來解壓後的文件夾
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs
注意這里有一個-with-apxs2=/usr/local/apache/bin/apxs選項,其中apxs是在安裝Apache時產生的,apxs是一個為Apache HTTP伺服器編譯和安裝擴展模塊的工具,使之可以用由mod_so提供的LoadMole指令在運行時載入到Apache伺服器中。我的理解是通過這個工具把PHP模塊動態載入到Apache中
出現錯誤:configure: error: xml2-config not found. Please check your libxml2 installation.
運行yum install libxml2,然後再運行yum install libxml2-devel安裝完畢後,重新運行上面的./configure命令。
5、編譯
make
6、測試編譯
make test
7、安裝
make install
8、配置文件
cp /usr/local/src/php-5.3.16/php.ini-development /usr/local/php/lib/php.ini
把原來位於源代碼裡面的php.ini-development拷貝到/usr/local/php/lib/php.ini下,並且重命名為php.ini
9.重啟apache
10、測試
在apache的htdocs下建立一個php文件test.php,裡面的內容如下:
<?php
phpinfo();
?>
然後在瀏覽器里輸入http://127.0.0.1/test.php
如果出現php的相關配置,成功,如果什麼都沒有輸入,說明失敗,重新以上步驟或者查找原因
如果決定在安裝後改變配置選項,只需重復最後的三步configure, make, 以及 make install,然後需要重新啟動 Apache 使新模塊生效。Apache不需要重新編譯。
測試結果如下圖:
三、安裝MySql
1、下載
到官網下載mysql-5.1.65.tar.gz(注意是源碼包)
2、解壓
tar -zxvf mysql-5.1.65.tar.gz
3、建立目標文件夾
mkdir /usr/local/mysql
也就是說等下安裝的mysql要安裝到這個文件夾裡面
4、配置
./configure --prefix=/usr/local/mysql/
在./configure時出現錯誤:error: No curses/termcap library found
下載安裝相應軟體包
yum list|grep ncurses
yum -y install ncurses-devel
yum install ncurses-devel
5、編譯
make
6、安裝
make install
7、啟動
MySQL服務並不會自動啟動,還需要先初始化MySQL資料庫,操作如下:
cd /usr/local/mysql/bin
sudo ./mysql_install_db --user=root
注意,這里最後的root是指可以操作資料庫的用戶,可以是當前用戶,也可以新建用戶,與linux上的root用戶是兩回事,可以自己取一個名字
./mysqld_safe --user=root & 這條命令負責啟動mysql服務的守護進程,此外最後的&時必須的,因為希望守護進程在後台運行
這里的root就是剛才的那個
8、為根用戶創建密碼
./mysqladmin -u root password 『123456』
如果root已經設置過密碼,採用如下方法
./mysqladmin -u root password oldpass 『123456』
9、測試
mysql -u root -p
會提示輸入密碼,就用剛才設置的密碼
123456
如果出現mysql>,說明連接成功了,下面通過命令 創建一個資料庫、建一個表,增加一條記錄,為後面的測試准備
mysql> create database gywtest;
mysql> use gywtest;
mysql> create table student(id int(4) not null primary key auto_increment,stuname char(20));
mysql> insert into student(stuname) values('Tom');
注意每條命令後面有個分號,如果上面的都成功,後面就可以用這個測試。
四、將PHP與MySql結合起來
1、重新配置PHP,改變配置選項,只需重復PHP安裝時的最後的三步configure, make, 以及 make install,然後需要重新啟動 Apache 使新模塊生效,Apache不需要重新編譯。
2、配置
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqli=/usr/local/mysql/bin/mysql_config 注意mysql_config 的路徑
3、編譯 make
4、安裝 make installe
5、測試 寫一個頁面test.php,放在apache的web目錄下,測試上面用命令創建的資料庫
<?php
$mysqli=new mysqli();
$mysqli->connect('localhost','root','123456','gywtest');
// 創建查詢
$sqlstr='select * from student';
//發送查詢給MySql
$result=$mysqli->query($sqlstr);
while($row=$result->fetch_object())
{
$name=$row->stuname;
echo $name;
}
?>
Fatal error: Class 'mysqli' not found in /home/lufangtao/Project/DB.php on line 3
解決方法:
/usr/local/php/bin/phpize 這里回車運行
出錯:
Cannot find config.m4.
Make sure that you run './phpize' in the top level source directory of the mole
解決方法:
PHP源碼包文件夾下的EXT文件夾就是放置著目前版本的可用擴展,CD進去看看都有哪些你需要的?應該看到mysqli文件夾了吧~~~
在當前目錄下執行phpize
[root@localhost mysqli]#/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Modeule Api No: 20090626
Zend Extension Api No: 220090626
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
解決方法:
yum install autoconf再次運行上面的命令即可。
[root@localhost mysqli]#./configure –prefix=/opt/mysqli –with-php-config=/opt/php/bin/php-config –with-mysqli=/opt/mysql/bin/mysql_config
[root@localhost mysqli]#make
[root@localhost mysqli]#make install
安裝完成後會有提示擴展所在目錄路徑,如:
/opt/php/lib/php/extensions/no-debug-zts-20090626php
所需的mysqli.so便會在此目錄下,接下來修改/opt/php/etc/下的php.ini文件,加入mysqli擴展,即加入如下一行:
extension=/opt/php/lib/php/extensions/no-debug-zts-20090626/mysqli.so
這里還是回出現錯誤:
參考博客http://www.cnblogs.com/wangtao_20/archive/2011/03/07/1973621.html
解決不用擴展連接MySQL的方法。
最終還是沒有解決MySQLi連接的問題,但是可以使用MySQL資料庫了,下面是測試程序
<?php
$link=mysql_connect('localhost','root','123456');
if(!$link) echo "F!";
else echo "S!";
mysql_select_db("students") or die("Could not select database");
$query="SELECT * FROM student;";
$result=mysql_query($query) or die("Query failed");
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n"; }
print "</table>\n";
/* 釋放資源 */
mysql_free_result($result);
mysql_close();
?>
~
7. 怎麼在linux伺服器上配置php環境
建議多使用網路搜索,網上這樣的帖子特別多。
Linux的分支比較大,不過常使用的也就Centos和Ubuntu。下面我貼出來在Centos上面搭建php環境的方法,命令有所不同,不過差異不大。
安裝apache:
yum install httpd httpd-devel
啟動apache:
/etc/init.d/httpd start
此時輸入伺服器的IP地址,應該看到apache的服務頁面,埠不用輸,apache默認就是使用80埠
安裝mysql:
yum install mysql mysql-server
啟動mysql:
/etc/init.d/mysqld start
安裝php
yum install php php-devel
重啟apache使php生效
/etc/init.d/httpd restart
此時可以在目錄:/var/www/html/下建立一個PHP文件
代碼:
<?php phpinfo(); ?>
然後訪問這個文件,就能看到PHP的一些信息,php.ini配置文件的路徑可以在這個頁面上看到
安裝php的擴展
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
安裝完擴展之後需要再次重啟apache
/etc/init.d/httpd restart
測試mysql是否鏈接成功的php代碼
<?php
$con = mysql_connect("10.0.@.@@","@@","@@");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb", $con);
$result = mysql_query("SELECT * FROM sys_user");
while($row = mysql_fetch_array($result))
{
echo $row['UserName'] . " " . $row['PassWord'] . " " . $row['id'];
echo "<br />";
}
mysql_close($con);
?>
可以把上面的代碼傳入目錄/var/www/html/
就可以看到執行情況
8. linuxphp網站怎麼安裝
配置php服務
安飢塌裝yasm匯編器(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvfyasm-1.2.0.tar.gz
[root@linuxprobesrc]cdyasm-1.2.0
[[email protected]]./configure
[[email protected]]make
[[email protected]]makeinstall
安裝libmcrypt加密演算法擴展庫(解爛銀圓壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvflibmcrypt-2.5.8.tar.gz
[root@linuxprobesrc]cdlibmcrypt-2.5.8
[[email protected]]./configure
[[email protected]]make
[[email protected]]makeinstall
安裝libvpx視頻編碼器(解壓與編譯過程搏旦已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarxjvflibvpx-v1.3.0.tar.bz2
[root@linuxprobesrc]cdlibvpx-v1.3.0
[[email protected]]./configure--prefix=/usr/local/libvpx--enable-shared--enable-vp9
[[email protected]]make
[[email protected]]makeinstall
安裝Tiff標簽圖像文件格式(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvftiff-4.0.3.tar.gz
[root@linuxprobesrc]cdtiff-4.0.3
[[email protected]]./configure--prefix=/usr/local/tiff--enable-shared
[[email protected]]make
[[email protected]]makeinstall
安裝libpng圖片(png格式)函數庫(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvflibpng-1.6.12.tar.gz
[root@linuxprobesrc]cdlibpng-1.6.12
[[email protected]]./configure--prefix=/usr/local/libpng--enable-shared
[[email protected]]make
[[email protected]]makeinstall
安裝freetype字體引擎(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvffreetype-2.5.3.tar.gz
[root@linuxprobesrc]cdfreetype-2.5.3
[[email protected]]./configure--prefix=/usr/local/freetype--enable-shared
[[email protected]]make
[[email protected]]makeinstall
安裝jpeg圖片(jpeg格式)函數庫(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvfjpegsrc.v9a.tar.gz
[root@linuxprobesrc]cdjpeg-9a
[root@linuxprobejpeg-9a]./configure--prefix=/usr/local/jpeg--enable-shared
[root@linuxprobejpeg-9a]make
[root@linuxprobejpeg-9a]makeinstall
安裝libgd圖像處理程序(解壓與編譯過程已省略):
[root@linuxprobejpeg-9a]cd/usr/local/src
[root@linuxprobesrc]tarzxvflibgd-2.1.0.tar.gz
[root@linuxprobesrc]cdlibgd-2.1.0
[[email protected]]./configure--prefix=/usr/local/libgd--enable-shared--with-jpeg=/usr/local/jpeg--with-png=/usr/local/libpng--with-freetype=/usr/local/freetype--with-fontconfig=/usr/local/freetype--with-xpm=/usr/--with-tiff=/usr/local/tiff--with-vpx=/usr/local/libvpx
[[email protected]]make
[[email protected]]makeinstall
安裝t1lib圖片生成函數庫(解壓與編譯過程已省略):
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]tarzxvft1lib-5.1.2.tar.gz
[root@linuxprobesrc]cdt1lib-5.1.2
[[email protected]]./configure--prefix=/usr/local/t1lib--enable-shared
[[email protected]]make
[[email protected]]makeinstall
將函數庫文件放至合適的位置:
[[email protected]]cd/usr/local/src
[root@linuxprobesrc]ln-s/usr/lib64/libltdl.so/usr/lib/libltdl.so
[root@linuxprobesrc]cp-frp/usr/lib64/libXpm.so*/usr/lib/
安裝php服務程序(命令比較長,請一定要復制完整!!!):
[root@linuxprobesrc]tar-zvxfphp-5.5.14.tar.gz
[root@linuxprobesrc]cdphp-5.5.14
[[email protected]]exportLD_LIBRARY_PATH=/usr/local/libgd/lib
[[email protected]]./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php/etc--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-mysql-sock=/tmp/mysql.sock--with-pdo-mysql=/usr/local/mysql--with-gd--with-png-dir=/usr/local/libpng--with-jpeg-dir=/usr/local/jpeg--with-freetype-dir=/usr/local/freetype--with-xpm-dir=/usr/--with-vpx-dir=/usr/local/libvpx/--with-zlib-dir=/usr/local/zlib--with-t1lib=/usr/local/t1lib--with-iconv--enable-libxml--enable-xml--enable-bcmath--enable-shmop--enable-sysvsem--enable-inline-optimization--enable-opcache--enable-mbregex--enable-fpm--enable-mbstring--enable-ftp--enable-gd-native-ttf--with-openssl--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--without-pear--with-gettext--enable-session--with-mcrypt--with-curl--enable-ctype
[[email protected]]make
[[email protected]]makeinstall
復制php服務程序的配置文件到安裝目錄:
[[email protected]]cpphp.ini-proction/usr/local/php/etc/php.ini
刪除默認的php配置文件:
[[email protected]]rm-rf/etc/php.ini
創建php配置文件的軟連接到/etc/目錄中:
[[email protected]]cp/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
[[email protected]]ln-s/usr/local/php/etc/php-fpm.conf/etc/php-fpm.conf
[[email protected]]ln-s/usr/local/php/etc/php.ini/etc/php.ini
編輯php服務程序的配置文件:
[[email protected]]vim/usr/local/php/etc/php-fpm.conf
//將第25行參數前面的分號去掉。
pid=run/php-fpm.pid
//修改第148和149行,將user與group修改為www。
user=www
group=www
添加php-fpm服務程序到開機啟動項:
[[email protected]]cpsapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm
[[email protected]]chmod+x/etc/rc.d/init.d/php-fpm
[[email protected]]chkconfigphp-fpmon
為了保障網站的安全性,禁用掉不安全的功能:
[[email protected]]vim/usr/local/php/etc/php.ini
//修改第305行的disable_functions參數,追加參數為:
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
配置nginx服務程序支持php:
[[email protected]]vim/usr/local/nginx/conf/nginx.conf
//將第2行前面的號去掉並修改為userwwwwww;
//將第45行參數修改為indexindex.htmlindex.htmindex.php;
//將第65-71行前面的號去掉,修改為:
location~.php${
roothtml;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}
重啟nginx與php-fpm服務程序:
[[email protected]]systemctlrestartnginx
[[email protected]]systemctlrestartphp-fpm
9. 如何在linux安裝php開發環境
我一般會選用源碼安裝 php,安裝 php 的過程指定要安裝的擴展,但是避免不了缺少某個擴展未安裝導致程序運行報錯的問題。以 fileinfo 為例,介紹一下怎麼添加 php 擴展。
1. 准備
通常遇到報錯:xxx function undefined,而這個函數是系統函數的話,那一定是你缺少某個擴展。添加擴展也非常簡單。首選要確認當前的 php 是哪個版本,不同版本的 php 擴展會有些許出入。然後找到 Php 源碼目錄,也就是從網上下載下來並且解壓的 php 文件包。添加擴展的時候需要在源碼包裡面去執行命令。
2. 安裝 fileinfo 擴展
1. 確認 php 版本
php -v
# PHP 7.4.4 (cli)
2. 找到 php 可執行文件的位置
whereis php
# php: /usr/local/php /usr/local/php/bin/php
可以看出 php 執行文件在 /usr/local/php/bin 目錄裡面
那麼嘗試執行 phpize,保證這個文件存在,phpize 命令在添加擴展的時候需要用到
/usr/local/php/bin/phpize -v
# Configuring for:
# PHP Api Version: 20190902
# Zend Mole Api No: 20190902
# Zend Extension Api No: 320190902
3.進入php源碼目錄
我的習慣是網路下載的軟體會放在 /usr/local/src 下面,
cd /usr/local/src/php-7.4.4
cd /etc
cd fileinfo
擴展都在源碼目錄的 etc 下面,裡面有 curl,gd,ftp 等等擴展目錄,我要安裝 fileinfo,所以到 fileinfo 目錄裡面
4.開始安裝
確定目錄下面有 config.m4 文件,如果沒有,應該會有 config0.m4 文件,把 config0.m4 復制一份為 config.m4,如果沒有這個文件,會報錯:can not found config.m4
/usr/local/php/bin/phpize
./configure
make && make install
如果這幾行命令運行下來都沒有報錯,那麼說明擴展文件已經生成,並且已經自動移入相應位置。接下來就是修改 php.ini,追加 extension=fileinfo.so 到 php.ini 中。
5.修改php.ini,載入擴展文件
查看 php.ini 的位置
php -i | grep php.ini
#Configuration File (php.ini) Path => /usr/local/php/etc
#Loaded Configuration File => /usr/local/php/etc/php.ini
可以看到 php.ini 的位置: /usr/local/php/etc/php.ini
vim /usr/local/php/etc/php.ini
#添加extension=fileinfo.so,保存
php -m | grep fileinfo
#fileinfo
看到輸出 fileinfo,至此,fileinfo 擴展安裝完畢!另外可以使用 pecl 命令安裝,更方便快捷!
10. Linux 下編譯安裝 PHP 5.6
如果你的 Web Server 使用的 Apache 請添加類似:--with-apxs2=/usr/local/apache-xx/bin/apxs
參數。
關於 mysqlnd
請查看 什麼是 PHP 的 MySQL Native 驅動? 或查看 MySQL 官方介紹: MySQL native driver for PHP , 或 Installation on Unix 。
PHP 5.6 內建了 phpdbg 互動式調試器,通過 --enable-phpdbg
開啟,會在 PREFIX/bin
目錄下產生一個 phpdbg 命令,感興趣的可以試一下。
更多編譯參數請使用 ./configure --help
查看。
如果想重新安裝:
配置文件 :
php-fpm 服務
啟動 php-fpm
php-fpm 可用參數 start|stop|force-quit|restart|reload|status
添加 PHP 命令到環境變數
編輯 ~/.bash_profile ,將:
使 PHP 環境變數生效:
查看看 PHP 版本