Разделите 15.2.1 “Нижних индекса Массива”, говорит, что массивы могут быть индексом с [exp]
(где exp
числовое выражение), и это, элементы запускаются в индексе 1 (0, если KSH_ARRAYS
установлен).
Разделите 14.3 “Расширений Параметра”, говорит что синтаксис ${#array_name}
расширится до числа элементов массива.
Разделите 6.3 “Сложных Команд”, дает синтаксис для числового for
цикл (как в C):for (( initExpr ; testExpr ; stepExpr )) do … done
.
Помещение их всех вместе:
for (( i = 1; i <= $#LOCAL_PATH; i++ )) do
( # subshell to contain the effect of the chdir
cd $LOCAL_PATH[i]
hg pull $REMOTE_PATH[i]
)
done
Или, если Вы используете KSH_ARRAYS
, затем это:
for (( i = 0; i < ${#LOCAL_PATH[@]}; i++ )) do
( # subshell to contain the effect of the chdir
cd ${LOCAL_PATH[i]}
hg pull ${REMOTE_PATH[i]}
)
done
Используя KSH_ARRAYS
заставляет массивы запуститься с индекса 0, требует использования фигурных скобок для выражений с массивами и интерпретирует $array
как $array[0]
(требование изменения в выражении длины массива). Изменения синтаксиса, требуемые KSH_ARRAY
будет также работать без KSH_ARRAY
, но все еще необходимо скорректировать логику для другого индексного диапазона (1 через N по сравнению с 0 через N-1).
Хорошо я получил эту работу главным образом со справкой из следующих инструкций: http://code.google.com/p/modwsgi/wiki/InstallationOnFreeBSD
Вот то, что я сделал (как пользователь root):
Переустановите апача
У меня уже было apache22, установленный от двоичного пакета, но по-видимому версия пакета компилируется без поддержки потока, и Вам нужны потоки для mod_wsgi. Таким образом, я сделал: pkg_delete apache-2.2.17_1
. Это жаловалось на php в зависимости от апача, таким образом, я сделал: pkg_delete php5-5.3.5
. Затем я сделал pkg_delete apache-2.2.17_1
снова, который работал. Затем я сделал cd /usr/ports/www/apache22
затем make config
затем я проверил флажок "[X] THREADS Enable threads support in APR"
затем make
затем make install
. Стартовый апач работал, но я добрался, ошибка" [предупреждают] (2) Никакой такой файл или каталог: Отказавший для включения 'httpready' Принимают Фильтр". Я искал онлайн и зафиксировал его путем выполнения kldload accf_http
и apachectl restart
затем я добавил accf_http_load = "ДА" к моему/boot/loader.conf, таким образом, это изменение сохранится после перезагрузки.
Установка mod_wsgi
cd /usr/ports/www/mod_wsgi3
make
make install
это автоматически изменило мой httpd.conf файл для добавления loadmodule строки
Resinstall php
(не строго необходимый, но так как я должен был деинсталлировать его выше),
cd /usr/ports/lang/php5
make config (and set any options desired)
make
make install
Протестируйте установку mod_wsgi
Следование инструкциям по http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide. Я создал файл, названный test.wsgi со следующим содержанием в моем корне документа:
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Я добавил следующую строку в конец своего httpd.conf:
WSGIScriptAlias /myapp /usr/home/myusername/www/wsgitest/test.wsgi
(На моем тестовом поле у меня есть апачская установка с корнем документа в/usr/home/myusername/www). Затем я сделал перезапуск apachectl. Затем я перешел к http://localhost/myapp в своем браузере и вуаля! Я видел "Привет Мир".
Зернышко установки
cd /usr/ports/devel/py-pip
make
make install
Обновленный моя оболочка, таким образом, путь обновил бы.
Установка django
pip install django
(это получило меня django версия 1.3 yay!) для подтверждения установки django
python
import django
Создайте django тестовое приложение
Я создал новую папку для своего теста django mkdir /usr/home/myusername/www/djangotest
. Затем
django-admin.py startproject mysite
Создайте django wsgi файл
созданный новый файл/usr/home/myusername/www/djangotest/django.wsgi со следующим содержанием:
import os
import sys
path = '/usr/home/myusername/www/djangotest'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Редактирование httpd.conf
WSGIScriptAlias /djangotest /usr/home/myusername/www/djangotest/django.wsgi
apachectl restart
посетите http://locahost/djangotest в браузере.Работает!
Отредактируйте httpd-vhosts.conf (дополнительно)
Теперь получить его работающий частью виртуального хоста. Прокомментируйте строку WSGIScriptAlias в httpd.conf. Затем добавьте что-то как:
<VirtualHost *>
ServerName mytest.whatever
DocumentRoot /usr/home/myusername/www/djangotest
WSGIScriptAlias / /usr/home/myusername/www/djangotest/django.wsgi
</VirtualHost>
apachectl restart
После конфигурирования файла hosts посетите http://mytest.whatever в браузере.Работает!
Вы не должны устанавливать ничего специального для питания с Django. Единственные вещи, в которых Вы нуждаетесь для сервера отладки, который работы:
Вы уже получили Python, таким образом, я предлагаю:
easy_install pip
pip install django
Затем следуйте учебным руководствам Django.
mod_wsgi играет роль при развертывании приложения.