自己曾經做過一個網盤項目。剛開始由於需要快速地從0到1建設上線,所以沒有對核心文檔表進行分表。當然我的架構理念也是「按需架構設計」。產品需求在沒有明確的長遠計劃的情況下以「小步快跑,趕超競品」為主。後期由於產品功能觸達目標用戶群需求點、產品用戶體驗不斷提升、產品多方位導流、加強產品推廣文檔表每天有百萬數據增長量。不得不對文檔表進行按用戶id分表。當時產品功能已全覆蓋文檔的生命周期。產品功能已豐富多彩。修改所有關聯文檔表的業務代碼為按用戶id分表開發測試成本非常高。上線後線上問題不可控。經過考慮在業務代碼最底層DB層進行SQL語句解析來進行用戶id分表處理。這樣的話開發測試成本都非常低。上線後有問題方便回滾和追查原因。
今天為大家介紹Python/PHP兩種MySQL語句解析器。當時網盤項目用的是PHP編程語言開發。
Python的SQL語句解析器 。個人推薦使用moz_sql_parser庫。經調研官方的sqlparse庫解析出來的語句段無法滿足需求也很難理解。
1、Python moz_sql_parser庫安裝
2、Python moz_sql_parser SQL語句解析
3、Python moz_sql_parser總結
PHP的SQL語句解析器。 個人推薦使用PhpMyAdmin的sql-parser組件。PhpMyAdmin是經過 歷史 檢驗可信賴的。
1、PHP PhpMyAdmin/sql-parser安裝
2、PHP PhpMyAdmin/sql-parser SQL語句解析
3、PHP PhpMyAdmin/sql-parser總結
大家有什麼問題可以發評論溝通。
② 怎麼配置apache才能同時支持python 和php程序
你apache用什麼方式運行django?
mod_wsgi?mod_python?
可定要配置VirtualHost
這里有個wsgi的方式,你可以參考下
zeuux.com/blog/content/3738/
③ python和php可以同時安裝嗎
最近開始學著用Python+Tornado+MongoDB寫網站,興起寫了一個博客,覺得很有意思所以想掛在伺服器上發布出去找大家一起玩。這個時候就遇到了問題。
伺服器是windows系統,安裝的是Apache,所以需要配置Apache,使Apache同時支持PHP和Python。
廢話少說,提供有效方案一個,照做即可:
1. 修改 httpd.conf 文件
將下列幾個Mole前的注釋符 # 去掉
LoadMole proxy_mole moles/mod_proxy.so
LoadMole proxy_connect_mole moles/mod_proxy_connect.so
LoadMole proxy_ftp_mole moles/mod_proxy_ftp.so
LoadMole proxy_http_mole moles/mod_proxy_http.so
2. 配置 httpd-vhosts.conf 文件
<VirtualHost *:80>
ServerName http://b06.suosikeji.com #這是你要解析的網站地址
ServerAdmin [email protected]
ProxyRequests Off
< Proxy *>
Order deny,allow
Allow from all
< /Proxy>
proxypass / http://127.0.0.1:8002/ #這里是你的python站點的地址
proxypassreverse / http://127.0.0.1:8002/ #同上
</VirtualHost>
3. 重啟 Apache
以上就是我的成功案例。
網上還查到一個方法是通過nginx配置反向代理,我試了一個多小時然後放棄了。之前沒接觸過nginx,所以出了問題也不知道該怎麼解決。其中讓我氣得要吐血的一個問題是:
nginx文件夾始終為「只讀」,怎麼改也改不了……導致nginx.exe無法運行……
要是哪位朋友有解決方案,望不吝賜教。
關於反向代理的初步認識:
以我的網站為例,博客運行在伺服器本地8002埠,即 http://127.0.0.1:8002。我要解析的域名為 http://b06.suosikeji.com。
由於伺服器環境為Apache,所以外面無法直接訪問伺服器上未在Apache中配置的某個埠,所以需要進行反向代理的配置。
配置好反向代理之後,當用戶訪問 http://b06.suosikeji.com/add 頁面時,伺服器Apache收到請求,將其轉換為 http://127.0.0.1:8002/add 交給Python處理,並將Python處理出的結果返回,這樣用戶就看到了正確的頁面。
④ 如何在PHP伺服器里運行python腳本
python環境在小鳥雲雲伺服器裝好後,就有一個idle工具,你找一下安裝目錄,自帶的編輯器,在任意目錄新建一個
aa.py
文件,用記事本和idle工具都行,輸入print("hello
world"),如果你使用的是idle,直接按f5,就能查看結果,如果用記事本,打開cmd,進入這個目錄,輸入命令python
aa.py就出來結果了。
⑤ LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python
一組常用來搭建動態網站或者伺服器的開源軟體,本身都是各自獨立的程序
一.部署Apache Web伺服器
(root下操作su root)1.部署Apache Web伺服器運行如下
2.測試所安裝Apache Web伺服器
3.檢測Apache是否運行
4.瀏覽器查看Apache測試頁面內容
安裝php7 sudo apt-get install php7.0
安裝apache2 php7 mole sudo apt-get install libapache2-mod-php7.0
安裝php-mysqli模塊:
apt-get install php-mysql
修改php.ini設置文件 :
/etc/php/7.0/apache2/php.ini(vim php.ini)
extension=php_mysqli.dll 去掉注釋;
(命令::/php_mysqli.dll,查找到上面的命令去掉前面的符號:)
systemctl start apache2 #生效
/var/www/html #下建立一個phpinfo.php文件 <?php phpinfo(); ?>
(touch phpinfo.php)
vim <?php phpinfo(); ?>
實戰:安裝基於PHPMySQL的博客及CMS建站系統
找到emlog_6.0.0下src文件夾拷貝到 /home/sgxz/下
在root 下cp -r /home/sgxz/src /var/www/html
創建資料庫
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE emg;
在/var/www/html# 下
chmod -R 777 src #src為博客網站目錄
回到瀏覽器
出現 連接資料庫失敗,請檢查資料庫信息。錯誤編號:1698
進入mysql資料庫 修改root密碼
MariaDB [(none)]> update mysql.user set authentication_string=PASSWORD('root'), plugin='mysql_native_password' where user='root'
回到瀏覽器輸入http://127.0.0.1/src/