#php #ruby-on-rails #ruby #forms #digital-ocean
#php #ruby-on-rails #рубиновый #формы #цифровой океан
Вопрос:
Здесь есть четыре файла, с которыми я имею дело:
master_form.php
action.php
form.txt
program.rb
Таким образом, данные вводятся master_form.php
и передаются action.php
через POST для генерации form.txt
, которая представляет собой файл с разделителями табуляции и данными формы, введенными из master_form.php
. Теперь action.php
сначала генерируется .txt
файл, а затем выполняется program.rb
, в котором используется файл с разделителями табуляции form.txt
. Все это происходит, и я просто не уверен, как писать разрешения, ну, знаете, например, что лучше, чтобы никто ничего не перехватывал, не копировал исходники и так далее.
Ответ №1:
Как правило, вы хотите хранить .rb
файлы любого типа за пределами вашего веб-корня, поскольку вы не хотите, чтобы они обслуживались. Часто это означает структурирование вашего приложения с public/
помощью каталога, в котором находятся основные файлы PHP, и lib/
bin/
каталога или для подобных скриптов.
Только вещи в public/
каталоге исполняются вашим PHP-сервером, и обычно .php
выполняются файлы. Все еще существует небольшой риск того, что по какой-то причине PHP будет отключен, и он будет обслуживать исходный код, поэтому никогда, никогда не помещайте конфиденциальные учетные данные в эти файлы. Всегда включайте это из другого пути, например config/
, из родительского каталога public/
.
Когда вы выполняете свой Ruby-скрипт, обязательно укажите правильный путь, и он будет выполняться так, как вы ожидаете.
Комментарии:
1. Итак, если я помещу файл Ruby в
lib/
иaction.php
вызывается, его нужно будет вызывать так:system('ruby /lib/program.rb');
в PHP, верно? Прямо сейчас,program.rb
имеет ли это разрешение архитектуру:-rw-r--r--
2. Вероятно, это больше похоже
ruby ../lib/program.rb
на предположение, что рабочий каталог скрипта является каталогом скрипта. Возможно, вам придется поэкспериментировать.3. Я получил это по вашему предложению:
ruby: No such file or directory -- ../lib/program.rb (LoadError)
4. Вам нужно будет выяснить, что представляет собой ваш рабочий каталог, а затем соответствующим образом скорректировать этот путь. Веб-серверы обрабатывают это различными способами.
5. Да, я пытался
/lib/program.rb
, но получил эту ошибку.