最近幾年,越來越多的人開始使用openwrt作為家庭路由器,它的穩定性和可自定義性深受用戶喜愛。而在自定義方面,許多人會選擇在openwrt上安裝mysql和php,以便于搭建自己的網站或開發個人應用。
在openwrt上安裝mysql,可以讓我們方便地進行數據庫操作,例如存儲數據、查詢數據等。首先我們需要安裝mysql和相關的包,打開終端,使用opkg進行安裝:
# opkg update # opkg install mysql-server mysql-client libmysqlclient安裝完成后,我們需要對mysql進行配置,例如設置root用戶密碼、允許遠程訪問等。在openwrt上,mysql的配置文件位于/etc/mysql/my.cnf,我們可以在其中進行修改。例如,修改root用戶密碼可以在[mysqld]節點下添加以下行:
[mysqld] skip-networking=false skip-name-resolve=false datadir=/opt/mysql/data pid-file=/opt/mysql/mysqld.pid socket=/opt/mysql/mysqld.sock user=mysql port=3306 default-storage-engine=MyISAM character-set-server=utf8 skip-locking log-bin=/opt/mysql/mysql-bin binlog-format=mixed server-id=1 #增加下面兩行 skip-grant-tables query_cache_limit=20M其中skip-grant-tables表示不需要密碼即可訪問,這樣我們就能夠直接通過mysql客戶端進行連接,修改root密碼:
$ mysql -u root mysql <mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';當然,由于密碼已經被修改,我們需要在my.cnf中去掉skip-grant-tables行,重啟mysql服務讓新密碼生效。 接著,我們需要安裝php,這樣我們就能夠在網頁中輕松地與mysql進行交互。打開終端,使用opkg進行安裝:
# opkg install php5-cgi php5-mod-mysql安裝完成后,我們需要在httpd中添加對php的支持,在/etc/config/uhttpd文件中添加以下幾行:
config 'uhttpd' 'uhttpd_main' ...... list interpreter '.php=/usr/bin/php-cgi' list interpreter '.php5=/usr/bin/php-cgi'這樣,對于以.php或.php5為后綴的文件,uhttpd就會使用php-cgi作為解釋器。我們也可以在php中直接進行數據庫操作,例如在一個網頁中向mysql中插入數據:
<?php $db = mysqli_connect('localhost', 'root', 'password', 'test'); if(mysqli_connect_errno()){ echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql="INSERT INTO Persons (FirstName, LastName) VALUES ('$_POST[firstname]','$_POST[lastname]')"; if (!mysqli_query($db,$sql)) { die('Error: ' . mysqli_error($db)); } echo "1 record added"; mysqli_close($db); ?>在這個例子中,我們通過mysqli_connect函數連接到了名為test的數據庫,并插入了一條數據。可以看到,php和mysql完美結合,大大增加了網站的可交互性。 綜上所述,將mysql和php安裝到openwrt系統中,可以讓我們更方便地進行網站開發和數據庫操作,充分發揮了openwrt這一開源路由器的自由度和可定制性。