[MySQL] root密碼重設

如果忘記root密碼可以這樣重設

 

停止服務

# sudo /usr/local/etc/rc.d/mysql-server stop

 

以安全模式啟動mysql,並跳過檢查

# sudo mysqld_safe --skip-grant-tables

 

這時候登入不需要密碼

# mysql -u root

 

接著修改DB記錄,把root密碼設成123456,並重新載入權限

mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD("123456") WHERE User='root';
mysql> flush privileges;
mysql> exit

 

最後重新啟動MySQL,大功告成

# sudo /usr/local/etc/rc.d/mysql-server restart

 

[ZendFramework] ZendFramework 2 安裝

取得ZF2的libs有兩個方式,一是使用composer,二是從Zend的github clone

 

利用composer安裝
※注意,若以下任何指令失敗並出現「Permission Denied」,請配合sudo操作。

# 先用curl取得composer.phar
curl -sS https://getcomposer.org/installer | php

# 用composer建立專案 (專案名稱以zf2-test為例)
php composer.phar create-project --repository-url="https://packages.zendframework.com" -s dev zendframework/skeleton-application ./zf2-test
cd zf-test/
php composer.phar update

 

若執行 php composer.phar update 出現 「Warning: This development build of composer is over 30 days old. It is recommended to update it by running “composer.phar self-update” to get the latest version.」,則改用self-update

php composer.phar self-update

 

若出現執行逾時的狀況,可加長執行時間

# 出現執行逾時會出現以下訊息
[RuntimeException]
The process timed out.

# 設定執行時間上限為3600秒
COMPOSER_PROCESS_TIMEOUT=3600 php composer.phar install
COMPOSER_PROCESS_TIMEOUT=3600 php composer.phar update

 

從GitHub安裝
※Windows平台建議使用此方法安裝(雖然composer官方有Windows的Installer,but…直接從GitHub拉回來比較省事啦XD)
※Windows使用者請記得將php.exe的路徑加入系統環境變數內,否則你的cmd會不認識php
※Windows使用者若沒有bash環境可用,請自行將第二行的mv視為rename

git clone https://github.com/zendframework/ZendSkeletonApplication.git
mv ZendSkeletonApplication zf2-test
cd zf2-test
php composer.phar self-update
php composer.phar install
php composer.phar update

 

設定Apache
在apache設定檔中加入以下內容,將DNS指到zf2-test/public

<VirtualHost *:80>
    ServerName zf-test.localhost
    DocumentRoot /path/to/zf2-test/public

    <Directory /path/to/zf-test/public>
        DirectoryIndex index.php
        AllowOverride All
        <IfVersion < 2.3 >
            Order allow,deny
            Allow from all
        </IfVersion>

        <IfVersion >= 2.3 >
            Require all granted
        </IfVersion>
    </Directory>
</VirtualHost>

 

打開瀏覽器輸入zf-test.localhost,即可看到default page

若沒有DNS的話,也可以開一個port指過去zf2-test/public

NameVirtualHost *:8080
Listen 8080
<VirtualHost *:8080>
    DocumentRoot /path/to/zf2-test/public

    <Directory /path/to/zf2-test/public>
        DirectoryIndex index.php
        AllowOverride All
        <IfVersion < 2.3 >
            Order allow,deny
            Allow from all
        </IfVersion>

        <IfVersion >= 2.3 >
            Require all granted
        </IfVersion>
    </Directory>
</VirtualHost>

 

打開瀏覽器輸入localhost:8080,即可看到default page

[WordPress] 在單一站台架設多個網誌 (WordPress Multi-Site)

開啟 WordPress 主目錄下的 wp-config.php,並把WP_ALLOW_MULTISITE註解去掉並將值改為true,以啟用WPMU (3.7.1版約在106行)

define('WP_ALLOW_MULTISITE', true);

重新整理網頁,於後台左側選單點選工具->網誌網路安裝,檢查沒問題後,點選安裝

下一個畫面會提示把一些設定複製到 wp-config.php 與 .htaccess 裡,特別注意到wp-config.php的設定要貼在define(‘ABSPATH’)之前

完成動作後並儲存,重新整理畫面後左上角我的網誌裡面有出現網誌網路管理,收工。

[Linux] 用 ln 建立檔案或目錄連結

使用方式為 ln [-hs] <來源> <目標>

EX: 在 /var/www 下建立一個名為 wpmu 的 Synbolic Link,來源端為 /home/wordpress

ln -s /home/wordpress /var/www/wpmu

 

這裡只說明參數 -h-s 的差異,詳細請見 官方文件

 

-h 為 Hard Link,讀取方式為一層一層取得檔案相關的關聯資料,再到對應的 inode 取得檔案的屬性,以及檔案內容資料所在的 block , 最後到 block area 取得檔案的資料。

不管在哪個目錄底下叫出檔案並修改,因為 Hard Link 只是在目錄下建立一個檔案關聯紀錄,因此修改檔案時皆會修改到同一個檔案,而刪除檔案時只是刪除一個檔案關聯紀錄,並不是刪除檔案本身,因此不會變動到檔案本身的 inode 與 block area,好處為較安全。

由於 Hard Link 是在同一個 partition 上建立檔案關聯,因此 Hard Link 有兩項限制:

  1. 不能跨 File System
  2. 不能對目錄做 link

 

 

而參數 -s 為 Synbolic Link,這就好理解多了,Synbolic Link 會建立一個新檔案,指向 link 到的檔案或目錄,所以原檔案或目錄被砍掉時,這個 link 就會失效。而因為 link 的建立方式是建立新檔案,因此會有獨立的 inode 與 block 佔用磁碟空間 (建立及運作方式雷同 Windows 的捷徑)。


Reference:宅男的電腦筆記

[WordPress] 解決不支援utf-8環境下中文檔名異常問題

修改 wp-admin/includes/file.php

// 找到這行程式碼(約在306行),並加入iconv
$new_file = $uploads['path'] . "/$filename";
$new_file = iconv('utf-8', 'big5//ignore', $new_file);
// 把這行註解掉(約在322行),以下列程式碼取代
// return apply_filters( 'wp_handle_upload', array( 'file' => $new_file, 'url' => $url, 'type' => $type ), 'upload' );
return apply_filters( 'wp_handle_upload', array( 'file' => $uploads['path']."/$filename", 'url' => $url, 'type' => $type ), 'upload' );

 

修改 wp-admin/includes/media.php

// 把這行註解掉(約在2334行),以下列程式碼取代
// $filename = esc_html( basename( $post->guid ) );
$filename = substr($post->guid, strrpos($post->guid,'/')+1);

 

存檔後即生效

 

參考自 http://www.xyduan.net/