Как установить разрешения для Ruby-скрипта, выполняемого действием php form

#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 , но получил эту ошибку.