php服務啟動
問題:
安裝好phpstudy後,Apache可以啟動,Mysql無法啟動。
原因:
之前已經裝過Mysql,要把系統服務裡面的MySQL刪除,留下MySQL服務。
解決辦法:
在cmd命令行下輸入:sc delete mysql即可刪除mysql服務。
當我們在cmd里使用 sc delete 服務名,來刪除服務的時候,報錯誤,SC OpenService 失敗5:拒絕訪問,這似乎是因為許可權不夠。
解決方法:
第一步、我們必須先取得管理員許可權,以管理員許可權運行cmd.exe。
第二步、在輸入命令:sc delete 要刪除的服務名
phpstudy中apache或mysql無法啟動
phpstudy中apache或mysql無法啟動,啟動一下沒了
明顯埠被佔用了,假如我們需要確定誰佔用了我們的80埠,3306埠
對網站來說,網路apatche伺服器是默認 80,資料庫mysql是3306
埠佔有兩種解決方法:
法1:把被佔用的 進程結束掉 (如果你沒裝iis的話,也就是 你把能關的軟體都關閉 尤其迅雷什麼的)
法 2:改apatche 的埠
具體如下:
----------------------------------------
法一、如何查看某個埠被誰佔用,把被佔用的 進程結束掉
我們在啟動應用的時候經常發現我們需要使用的埠被別的程序佔用,但是我們又不知道是被誰佔用,這時候我們需要找出「真凶」,如何做到呢?
方法/步驟
第一步:開始---->運行---->cmd,或者是window+R組合鍵,調出命令窗口
第二步:輸入命令:netstat -ano,列出所有埠的情況。在列表中我們觀察被佔用的埠,比如是49157,首先找到它。
(對網站來說,網路apatche伺服器是默認 80,資料庫mysql是3306)
第三步:查看被佔用埠對應的PID,輸入命令:netstat -aon|findstr "49157",回車,記下最後一位數字,即PID,這里是2720
第四步:有兩種方法
1..續輸入tasklist|findstr "2720",回車,查看是哪個進程或者程序佔用了2720埠,結果是:svchost.exe
2..
或者是我們打開任務管理器,切換到進程選項卡,在PID一列查看2720對應的進程是誰,如果看不到PID這一列,如下圖:
則我們點擊[查看]--->[選擇列],將PID(進程標示符)前面的勾打上,點擊確定。
這樣我們就看到了PID這一列標識,看一下2720對應的進程是誰,如果沒有,我們把下面的顯示所有用戶的進程前面的勾打上,就可以看到了,映像名稱是svchost.exe,描述是,Windows的主進程,與上面命令查看的完全一致。
第五步:結束該進程:在任務管理器中選中該進程點擊」結束進程「按鈕,或者是在cmd的命令窗口中輸入:taskkill /f /t /im Tencentdl.exe。
-------------------------------------------------------------------------
法二:phpstudy修改埠
phpstudy控制面板中,點擊 其他選項
:將埠改為 8080
但需要注意,修改埠後,在輸入網址的時候,要帶著埠
如:(注意有冒號)
localhost:8080
localhost:8080/zz/index.php
② 如何運行PHP
分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:
我們要在電腦上運運ASP文件 只要裝IIS就可以。
哪要運行PHP文件呢。該怎麼辦!~
解析:
如何安裝運行php
1. Unix/Windows: 我的php.ini 文件應該放在哪?
UNIX下默認它應該放在 /usr/local/lib 目錄下。 這是它的 /lib. 很多人會在編譯時改變它,使用--with-config-file-path 標志。 例如, 你可以這樣設它: --with-config-file-path=/etc
然後你可以復制源程序包里的 php.ini-dist 到 /etc/php.ini ,編輯它滿足你的本地化需求。
Windows下 php.ini默認的路徑是 Windows 系統目錄. 如果你在使用 Apache webserver, php.ini 則最先在 Apaches 安裝目錄下被查找, 例如: c:\program files\apache group\apache. 這樣你可以有不同的 php.ini 對應不同版本的 Apache(同一台機器上)。
更多細節請查閱 configuration file.
2. Unix: 我安裝了 PHP, 但我每次載入一個文檔, 會得到下面的消息: Document Contains No Data ! 怎麼回事?
這可能是因為你的 PHP 發生了core-mping錯誤。 查找你的伺服器錯誤日誌文件,看看是否屬於這種情況。 然後報告這個錯誤。如果你知道怎樣使用 gdb ,你可以提供一個 backtrace 在你的錯誤報告里。這將會對開發人員解決 這個問題有很大幫助。如果你是在將PHP作為Apache模塊使用,那麼請按下面的步驟做:
停止 d 進程
gdb d
停止 d 進程
> run -X -f /path/to/d.conf
瀏覽你剛才出錯的 URL
> run -X -f /path/to/d.conf
如果你還有 core mp, gdb 現在會通知你
打入: bt
在你的 bug report里應該包含backtrace 。 這些會被發往 bugs.php/
如果你的腳本使用了正則表達式函數 (ereg() and friends), 你應該確保你編譯 PHP 和 Apache 用的是同一個正則表達式包。 在 PHP 和 Apache 1.3.x 這個過程是自動進行的。
3. Unix: 我使用 RPMS 安裝 PHP , 但Apache 不支持 PHP頁面! 怎麼辦?
假設你安裝了 Apache 和 PHP(從 RPM ) , 你需要反注釋或者增加一些行在你的 .conf 文件里: # Extra MolesAddMole mod_php.cAddMole mod_php3.cAddMole mod_perl.c# Extra MolesLoadMole php_mole moles/mod_php.soLoadMole php3_mole moles/libphp3.so /* for PHP 3 */LoadMole php4_mole moles/libphp4.so /* for PHP 4 */LoadMole perl_mole moles/libperl.so
And add: AddType application/x-d-php3 .php3 /* for PHP 3 */AddType application/x-d-php .php /* for PHP 4 */
... 到全局域里, 或者到你想要的 支持PHP的虛擬域里。
4. 我使用 RPMS 安裝 PHP 3 , 但是它沒有我需要的資料庫選項支持! 我該怎麼辦?
因為 PHP 3 內建支持的關系, 編譯一個完整的可適於所有應用的 PHP RPM是相當困難的。 在 PHP 4有談到這點。 對 PHP 3, 我們只好建議你使用INSTALL.REDHAT (在 PHP包里)描述的機制。 如果你一定要使用 RPM 版的 PHP 3, 讀...
RPM 包管理器設置 RPMS 簡單的安裝,不帶資料庫支持 and 因為RPMS 使用 /usr/ 而不是標準的 /usr/local/ 目錄存放文件. 你需要告訴 RPM 文件你要支持哪種資料庫以及它們的最上級目錄的位置。
下面的例子將解釋在Apache模式下怎樣支持通行的資料庫Mysql.
當然所有的這些可以稍作修改,以支持其它的PHP支持的資料庫。我們假設你安裝了 MySQL and Apache ,完全是用 RPMS 安裝的。
首先,移去 mod_php3 : rpm -e mod_php3
然後取得rpm包並安裝, 不是 --重編譯 rpm -Uvh mod_php3-3.0.5-2.src.rpm
編輯/usr/src/redhat/SPECS/mod_php3.spec 文件
在 %build 一節里增加你想要的資料庫支持, 以及路徑信息。
對 MySQL 你應該增加: --with-mysql=/usr \
%build 節看起來象: ./configure --prefix=/usr \ --with-apxs=/usr/ *** in/apxs \ --with-config-file-path=/usr/lib \ --enable-debug=no \ --enable-safe-mode \ --with-exec-dir=/usr/bin \ --with-mysql=/usr \ --with-system-regex
改動完成後,象下面這樣重編rpm : rpm -bb /usr/src/redhat/SPECS/mod_php3.spec
Then install the rpm rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm
重啟 Apache,你已經得到了rpm下的Mysq
l的支持。 注意到這種做法比你重新得到一個 PHP 3 的tarball 代碼,按照 INSTALL.REDHAT 的指引一步一步做要容易得多。
5. Unix: 我用 FrontPage 擴展包對Apache打了補丁, 忽然 PHP 停止工作。 是PHP 和 Apache FrontPage 包不兼容嗎 ?
不是, PHP 和 FrontPage擴展包運行得很好.。問題是FrontPage 包修改了幾個Apache 結構參數,而PHP要用到它們.在FrontPage擴展包被打上後, 重新編譯 PHP (使用 make clean ; make ) ,會解決這個問題。
6. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁面時,空白一片。
在瀏覽器里用 查看源文件 看你的腳本,你可能會發現你看到的是源程序。 這表示 web server 並沒有送腳本到PHP去執行。肯定是伺服器配置上哪兒出了錯。 仔細檢查PHP安裝的 server 配置。
7. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的 PHP頁面時,我得到一個 server 500 error。
這是伺服器在運行 PHP 時發生了錯誤。 為了看到可讀的錯誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運行 php -i. 如果有任何問題,詳細的錯誤信息就顯示出來了,它會告訴你下一步該做什麼。 如果你得到滿屏的HTML代碼 (phpinfo() 函數的輸出), 那麼PHP工作正常,這個錯誤就是由於伺服器配置引發的,應該仔細檢查。
8. 某些操作系統: 我安裝PHP沒出錯,可是我啟動Apache時,得到一個 undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/d Undefined symbols: _press _unpress
這個問題其實與 PHP 無關, 而與 MySQL 客戶端庫有關。 --with-zlib,有些操作系統需要,而有些不需要。MySQL FAQ已經講述了這個問題。
9. Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁面, 得到如下錯誤: cgi error: The specified CGI application mi *** ehaved by not returning a plete set of HTTP headers. The headers it did return are:
這是 PHP 根本沒有產生任何輸出。 為了看到可讀的錯誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運行 php -i. 如果有任何問題,詳細的錯誤信息就顯示出來了,它會告訴你下一步該做什麼。 如果你得到滿屏的HTML代碼 (phpinfo() 函數的輸出), 那麼PHP工作正常。
一旦PHP在命令行模式下工作,再看看你的腳本程序, 它還是失敗,可能是因為以下原因:
你的PHP腳本的許可權許可。 php.exe, php4ts.dll, php.ini 或者任何你可能裝入的PHP文件,它樣都必須能被匿名 inter 用戶 ISUR_ 訪問。
腳本文件根本不存在(或者不是你認為的位置。)請注意在IIS里,你能夠阻塞這個錯誤,做法是在設置腳本映射目錄時, 選上 check file exists 框。這樣如果腳本不存在,伺服器會返回一個404錯誤。 這樣做也有其它的一些好處, 就是IIS僅為你做經過授權的操作。
10. Windows: 我嚴格按照install的要求做,可是還是不能讓我的php在IIS下工作。
確定任何想要運行PHP的用戶有操作php.exe的許可權! IIS 使用匿名的inter用戶,它是在IIS安裝時系統自動增加的。 這個用戶需要操作 php.exe的許可權. 還有,任何需要授權的用戶也必須有訪問 php.exe的許可權。 在 IIS4下,你要告訴它PHP是一個腳本引擎。
③ 利用shell腳本自動重啟php服務
首先你要設置好sudo 如果不用sudo用root用戶執行也可以
寫腳本很簡單的
下述兩行拷貝到伺服器的文本文件中
#!/bin/ksh
/data/webserver/php-5.2.17/sbin/php-fpm reload
如果沒有依賴庫或依賴環境變數,任何用戶只要有執行許可權就可以執行。
sudo可以配置為不輸入密碼的。
1) 首先需要切換到root, su - (注意有- ,這和su是不同的,在用命令"su"的時候只是切換到root,但沒有把root的環境變數傳過去,還是當前用乎的環境變數,用"su -"命令將環境變數也一起帶過去,就象和root登錄一樣)
2) 然後visudo 或者 vi /etc/sudoers, visudo 這個和vi的用法一樣,由於可能會有人不太熟悉vi,所以簡要說一下步驟
移動游標,到一行root ALL=(ALL) ALL的下一行,按a,進入append模式,輸入
your_user_name ALL=(ALL) ALL
然後按Esc,再輸入:w保存文件,再:q退出
這樣就把自己加入了sudo組,可以使用sudo命令了。
3) 默認5分鍾後剛才輸入的sodo密碼過期,下次sudo需要重新輸入密碼,如果覺得在sudo的時候輸入密碼麻煩,把剛才的輸入換成如下內容即可:
your_user_name ALL=(ALL) NOPASSWD: ALL
至於安全問題,對於一般個人用戶,我覺得這樣也可以的。
4)如果你想設置只有某些命令可以sudo的話,your_user_name ALL= (root) NOPASSWD: /sbin/mount, (root) NOPASSWD: /bin/umount, (root) NOPASSWD: /mnt/mount, (root) NOPASSWD: /bin/rm, (root) NOPASSWD: /usr/bin/make, (root) NOPASSWD: /bin/ln, (root) NOPASSWD: /bin/sh, (root) NOPASSWD: /bin/mv, (root) NOPASSWD: /bin/chown, (root) NOPASSWD: /bin/chgrp, (root) NOPASSWD: /bin/cp, (root) NOPASSWD: /bin/chmod
使用sudo時, sudo su - 用戶名 就可以了
④ 怎樣在本地運行PHP
1、首先需要在電腦上安裝PHPstudy軟體和notepad這兩個代碼編輯軟體(如果找到可以代替的就用你那代替的),如圖所示紅色箭頭所示:
⑤ linux怎麼查看php啟動命令
啟動php-fpm。
/usr/local/php5/sbin/php-fpm /usr/local/php5/為php-fpm的安裝地址。
/usr/local/php-5.6.3/sbin/php-fpm -R # 如果報錯顯示不能用root用戶啟動,則可以考慮使用 -R命令。
查看是否啟動成功:
netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
或者使用如下命令,查看是否9000埠被php-fpm佔用:
netstat -tunpl | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2124/php-fpm。
⑥ 怎麼重啟php服務
PHP(Hypertext Preprocessor)即「超文本預處理器」,是在伺服器端執行的腳本語言.
它運行是要基於apache、nginx等伺服器來運行的,而php擴展在php.ini 配置好了,直接重新啟動一下伺服器就好了