LAMP-C ++ с web.py
Все файлы, доступные в git repo -> link
1) Сеть:
Если вы хотите видеть свою службы / сайта в домашней подсети (192.168.xxx.xxx IP-s), то вы должны убедиться, что IP-адреса стабильны. У меня есть роутер, у которого есть встроенный DHCP-сервер, который передает IP-адреса домашней подсети устройствам, на основе которых сначала подключен. Существует два способа решения этой проблемы: вы можете настроить устройство конфигурации на предпочтительный IP-адрес в домашней подсети или настроить DHCP-исключения на вашем маршрутизаторе (например, через веб-интерфейс, 192.168.1.1). После настройки (или если вам не нужны никакие настройки на основе ваших настроек маршрутизации), вы можете определить IP-адрес своего компьютера с помощью ifconfig Update / etc / hosts, чтобы иметь правильное разрешение DNS на вашей машине dev:#loopback
127.0.0.1 localhost #default
127.0.1.1 MY_PC #if your PC has a name
#home subnet
#192.168.1.2 mysite.com #ethernet IP
192.168.1.10 mysite.com #wifi IP
2) Apache
Если вы хотите видеть свою службу / сайт в домашней подсети (192.168.xxx.xxx IP-адреса), вы должны убедиться, что IP-адреса стабильны. У меня есть роутер, у которого есть встроенный DHCP-сервер, который передает IP-адреса домашней подсети устройствам, на основе которых сначала подключен. Существует два способа решения этой проблемы: вы можете настроить устройство конфигурации на предпочтительный IP-адрес в домашней подсети или вы можете настроить исключения DHCP на своем маршрутизаторе (например, через веб-интерфейс, 192.168.1.1).Если вы хотите увидеть свой сервис / сайт в домашней подсети (192.168.xxx.xxx IP-адреса), тогда вы должны убедиться, что IP-адреса стабильны. У меня есть роутер, у которого есть встроенный DHCP-сервер, который передает IP-адреса домашней подсети устройствам, на основе которых сначала подключен. Существует два способа решения этой проблемы: вы можете настроить устройство конфигурации на предпочтительный IP-адрес в домашней подсети или настроить DHCP-исключения на вашем маршрутизаторе (например, через веб-интерфейс, 192.168.1.1).
cd /etc/apache2 && ll
После настройки (или если вам не нужны никакие настройки, основанные на настройках маршрутизации), вы можете определить IP-адрес своего компьютера с помощью ifconfig После настройки (или в случае, если вам не нужна ни одна на основе вашей маршрутизации предпочтения), вы можете определить IP-адрес своего компьютера с ifconfig
# sets Apache listen on port 80
Listen *:80
Обновить / etc / hosts, чтобы иметь правильное разрешение DNS на вашей машине dev: #loopback
127.0.0.1 localhost #default
127.0.1.1 MY_PC #if your PC has a name
#home subnet
#192.168.1.2 mysite.com #ethernet IP
192.168.1.10 mysite.com #wifi IP
Обновите / etc / hosts, чтобы иметь правильное разрешение DNS на вашей машине dev:
WSGIScriptAlias / /path/to/wsgi/entry/point/script/
Require all granted
Options Indexes FollowSymLinks
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /path/to/work/www/mysite/
Require all granted
Options Indexes FollowSymLinks
# to serve static content
Alias /static /path/to/work/www/mysite/static/
#for wsgi script, if you intend ro use .py extension
AddType text/html .py
проверить права на каталог вашего сайта. добавьте свой сайт: sudo a2ensite mysite.com
перезапустите службу apache2: sudo service apache2 restart
проверьте, что apache2 запущен: ps ax | grep apache2
проверьте, что apache прослушивает порт 80 при подключении от кого-либо: sudo netstat -anp | grep apache
Выход вроде: tcp6 0 0 :::80 :::* LISTEN 1996/apache2
[d17 ] Заполните конфигурацию (у Apache 2.4 есть другой макет конфигурации, скажем, Apache 2.2):
sudo apt-get install libapache2-mod-wsgi
ports.conf:
sites-available / mysite.com.conf (точно с ".com" part !!!):
sudo apt-get install python
sudo apt-get install python-pip
3) mod_wsgi
sudo pip install web.py
После этого вы должны иметь wsgi.conf и wsgi.load в каталоге / etc /apache2/mods-enabled.
sudo apt-get autoremove
sudo apt-get install libboost-all-dev
4) Установить python
5) Установить web.py (сайт webpy.org был заменен ссылкой )
6) Установить boost (autoremove помогло мне с проблемой сломанных пакетов, поэтому на всякий случай):
7) Установить mysql:
link [!d45 ]
Создайте тест базы данных, приветствуйте таблицу с идентификатором INT и VARCHAR (100) msg и вставьте 'Hello world!' внутрь. Ссылка, приведенная выше, содержит некоторые ресурсы о том, как достичь этого внизу, если вы новичок в mysql.
Если вы хотите увидеть свой сервис / сайт в домашней подсети ( 192.168.xxx.xxx IP-s), вы должны убедиться, что IP-адреса стабильны. У меня есть роутер, у которого есть встроенный DHCP-сервер, который передает IP-адреса домашней подсети устройствам, на основе которых сначала подключен. Существует два способа решения этой проблемы: вы можете настроить устройство конфигурации на предпочтительный IP-адрес в домашней подсети или настроить DHCP-исключения на вашем маршрутизаторе (например, через веб-интерфейс, 192.168.1.1).
cd /etc/apache2 && ll
[ ! d16] Обновите переменные среды .bashrc PATH для LD и PYTHON: # PATH env vars
export PATH=$PATH:/usr/lib/x86_64-linux-gnu
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib:/usr/local/lib
export PYTHONPATH = $PYTHONPATH:\
/path/to/work/:\
/path/to/work/myproject/:\
/path/to/work/myproject/mysite/:\
/path/to/work/myproject/myproject_back/:\
/path/to/work/www:\
/path/to/work/www/mysite/
После настройки (или если вам не нужны ни один на основе ваших настроек маршрутизации), вы можете определить IP-адрес своего компьютера с помощью [ f24]
# sets Apache listen on port 80
Listen *:80
Записать код на Python: Обновить / etc / hosts, чтобы иметь правильное разрешение DNS на вашей машине dev:
WSGIScriptAlias / /path/to/wsgi/entry/point/script/
Require all granted
Options Indexes FollowSymLinks
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /path/to/work/www/mysite/
Require all granted
Options Indexes FollowSymLinks
# to serve static content
Alias /static /path/to/work/www/mysite/static/
#for wsgi script, if you intend ro use .py extension
AddType text/html .py
myproject_front .py: [указать WSGIScriptAlias в apache2 config] import web #web.py framework
import gateway_front #python adapter to c++
urls = (
'/.*', 'hello', #url pattern for web.py to call hello.GET beneath
)
class hello:
def GET(self):
#some browsers don't like plain text, so I use html
web.header( 'Content-type', 'text/html' )
g = gateway_front.Gate() # get gateway to c++
s = g.hello() # get 'Hello World' message
return str(s) # return it as a HTTP response
#sets web.py's func as WSGI entry point
application = web.application(urls, globals()).wsgifunc()
# to test from console
def main():
g = backend.Gate()
s = g.getDefaultQuote()
print s
if __name__ == '__main__':
main()
проверить права на каталог вашего сайта. проверить права на каталог вашего сайта.
добавить свой сайт:sudo a2ensite mysite.com
добавить свой сайт:
Это было взято из официальной документации Oracle, ссылки и немного модифицировано.#include
#include
#include
#include "mysql_connection.h"
#include
#include
#include
#include
using namespace std;
char const* hello()
try {
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
/* Create a connection */
driver = get_driver_instance();
// MySQL IP address and your username
con = driver->connect("tcp://127.0.0.1:3306", "username", "username");
/* Connect to the MySQL test database */
con->setSchema("test"); //your db name
stmt = con->createStatement();
res = stmt->executeQuery("SELECT * from hello;");
string result;
while (res->next()) {
/* Access column data by alias or column name */
result = res->getString("msg"); // field in db with actual 'Hello World'
return result.c_str();
}
delete res;
delete stmt;
delete con;
} catch (sql::SQLException &e) {
cerr << "# ERR: SQLException in " << __FILE__;
cerr << "(" << __FUNCTION__ << ") on line "
<< __LINE__ << endl;
cerr << "# ERR: " << e.what();
cerr << " (MySQL error code: " << e.getErrorCode();
cerr << ", SQLState: " << e.getSQLState() << " )" << endl;
}
перезапустить службу apache2: sudo service apache2 restart
перезапустить службу apache2:
проверить, что apache2 запущен:ps ax | grep apache2
[d48 ] Кстати, Oracle сделал бесплатный графический интерфейс для mysql, он называется MySQL Workbench, здесь. Вам потребуется регистрация Oracle (бесплатно), чтобы загрузить ее.