㈠ php連接mysql資料庫,報錯Function mysql_connect() is deprecated
info.php在CentOS
64位虛擬機運行的時候,其中MySQL版本那一欄是空白信息。我查看了info.php源碼,開始以為是MySQL資料庫的用戶名和密碼填寫錯了,仔細檢查沒有錯誤之後,便查看了Apache的error_log,得到如下消息:
mysql_connect():
No
such
file
or
directory
在網上查了一下,說是本地socket設置與默認的不一樣,導致php無法找到mysql的socket文件。根據網上提供的方法,需要做如下操作。
首先,在MySQL中用status查看資料庫狀態,如下所示:
mysql
Ver
14.14
Distrib
5.1.69,
for
redhat-Linux-gnu
(x86_64)
using
readline
5.1
Connection
id:
10
Current
database:
Current
user:
root@localhost
SSL:
Not
in
use
Current
pager:
stdout
Using
outfile:
''
Using
delimiter:
;
Server
version:
5.1.69
Source
distribution
Protocol
version:
10
Connection:
Localhost
via
UNIX
socket
Server
characterset:
latin1
Db
characterset:
latin1
Client
characterset:
latin1
Conn.
characterset:
latin1
UNIX
socket:
/var/lib/mysql/mysql.sock
Uptime:
20
hours
55
min
30
sec
其中,標紅的部分是我們需要的。然後打開php.ini文件,需要將mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket的值設置為標紅後面的那個目錄。重啟apache伺服器,後續info.php工作正常,MySQL的版本信息能夠正常顯示了。
㈡ PHP7.0怎麼通過打開擴展功能和mysql相連
第一步:進入php源碼中的"ext/mysql"目錄下
第二步:在當前目錄下運行phpize命令:/usr/local/php524/bin/phpize
phpize的規則:去哪個目錄下運行phpize文件,那麼就會在該目錄下生成一個configure文件。
第三步:運行剛才生成的configure文件
命令: ./configure --with-php-config=/usr/local/php524/bin/php-config --with-mysql=/usr/local/mysql/
這里最關鍵的是通過--with-mysql參數告訴mysql客戶端的位置。這樣才能生成mysql.so。
實驗的時候,沒有加這個參數,結果錯誤:
./configure --with-php-config=/usr/local/php524/bin/php-config
第四步:編譯生成.so文件
第五步:配置php引擎載入該擴展。
補充一下:就是去php.ini文件中修改一下配置,載入mysql.so這個擴展(這個擴展文件要放到php指定的擴展目錄下面去)
第六步:測試php引擎是否成功載入該擴展編寫文件phpinfo.php,內容是:<?phpehco phpinfo();?>
運行後,可以看到有如下信息顯示:mysqlMySQLSupport enabledActive PersistentLinks 0
Active Links 0
Client API version 5.1.55
MYSQL_MODULE_TYPE no value
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE no value
MYSQL_LIBS no value
通過這樣的方式可以確認,php引擎已經成功載入了mysql.so擴展。
第七步:已經生成的mysql.so。編寫php代碼測試是否能連接mysql。
㈢ 阿里雲windows server 2012怎麼安裝php環境
一:下載資源
1.下載 VC11 vcredist_x64.exe(32位下載VC11 vcredist_x86.exe),因為雲伺服器上只裝了IIS,其他環境都沒有。推薦下載英文版。
2.下載Apache httpd-2.4.9-win64-VC11.zip (32位 網址相同) 由於自2.2後Apache官網不再更新win版本
3.下載php php-5.5.10 選擇線程安全版本 VC11 x64 Thread Safe
二:安裝配置
A.安裝 VC11 vcredist_x64.exe
B.安裝配置php
1.將php 解壓到自定義目錄下,我這里選擇和默認目錄一樣: C:/php55
2.將C:php55和C:php55ext加入環境變數PATH中
3.將C:php55php.ini-proction 復制一份,並重命名為php.ini
4.開啟幾個常用php擴展,用記事本打開C:php55php.ini
修改 721行 將; extension_dir = "ext" => extension_dir = "ext" (去掉extension前面的分號)
修改 873行 將;extension=php_mbstring.dll => extension=php_mbstring.dll(去掉extension前面的分號,這是php多位元組字元串擴展)
修改 875行 將;extension=php_mysql.dll => extension=php_mysql.dll(去掉extension前面的分號)
修改 876行 將;extension=php_mysqli.dll => extension=php_mysqli.dll(去掉extension前面的分號)
5.在 cmd中輸入 php -v 驗證是否安裝成功
C.安裝配置Apache
1.將Apache 解壓到自定義目錄下,我這里選擇和默認目錄一樣: C:/Apache24
2.打開C:apache24confhttpd.conf (推薦使用Notepad++ 可以看到行號)
說明:由於默認的IIS伺服器使用80埠,因此我令Apache使用8080埠,後面會講WindowsServer2012如何打開8080埠
修改 37行 ServerRoot "c:/Apache24" => ServerRoot "c:/Apache24"(這里輸入的是你解壓apache安裝包的位置)
修改 58行 Listen 80 => Listen 8080
修改 217行 #ServerName www.example.com:80 => ServerName www.example.com:8080 (去掉前面的#,同時設定埠號8080)
修改 241行 DocumentRoot "c:/Apache24/htdocs" => DocumentRoot "d:/WebSites" (這個目錄即為Apache伺服器的虛擬根目錄,可以自己設定)
修改 242行<Directory "c:/Apache24/htdocs"> =><Directory "d:/WebSites">(與241保持一致)
修改 262行AllowOverride None=> AllowOverride All
修改 267-269行
Require all granted
Order Deny,Allow
Allow from all
修改 275行 DirectoryIndex index.html => DirectoryIndex index.html index.php index.htm (我們添加了index.php index.htm)
修改 358行 ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" => ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" (依然一樣不用改)
修改 374行 <Directory "c:/Apache24/cgi-bin"> => <Directory "c:/Apache24/cgi-bin"> (依然一樣不用改)
在C:Apache24confhttpd.conf 最後一行添加
LoadMole php5_mole "c:/php55/php5apache2_4.dll" (這里與你下載的包有關)
AddType application/x-httpd-php .php .html .htm (注意.php .html .htm之間的空格)
PHPIniDir "c:/php55" (與自己的php安裝目錄一致)
3.安裝
打開cmd,注意WindowsServer2012中的PowerShell與cmd還是有區別的,快捷鍵win+X 選擇打開cmd
進入c:Apache24bin (你的Apache安裝目錄)
執行 httpd -k install(用PowerShell 無法執行這個命令)
4. 進入c:Apache24bin (你的Apache安裝目錄)
雙擊運行 ApacheMonitor.exe
不出意外,這時右下角已經有Apache的圖標了,在自己的伺服器雲主機上從瀏覽器 訪問 localhost:8080 以及 IP:8080 都可以發現成功了。
可能錯誤分析:
1. 右下角Apache面板顯示 no services installed。說明Apache沒有安裝成功。
2. 伺服器上鍵入 localhost:8080 以及 ip:8080 無法顯示。說明httpd.conf 配置錯誤
3. 伺服器上可以通過ip:8080 訪問 外網不能訪問。說明8080埠沒有開放。你可以在cmd裡面利用 netstat -ano查看埠開啟情況。
但是通過外網來訪問伺服器 IP:8080 去發現無法連接。這是因為默認的8080埠沒有打開。步驟如下:
阿里雲WindowsServer2012打開8080埠方法:
1、進入控制面板 選擇防火牆,選擇高級設置
2. 左側選擇入站規則,右側點擊新建規則
3. 選擇 埠
4. 選擇TCP 下面特定埠填寫8080
5. 允許連接
6.
7. 完成
這時通過外網 就可以以 IP:8080 方式訪問Apache伺服器了。